mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-05 04:33:45 +08:00
fix: service mode error and fallback to sidecar
This commit is contained in:
parent
8ba5853cdd
commit
46cc3105c4
@ -107,16 +107,18 @@ impl CoreManager {
|
|||||||
|
|
||||||
if enable {
|
if enable {
|
||||||
// 服务模式启动失败就直接运行sidecar
|
// 服务模式启动失败就直接运行sidecar
|
||||||
match {
|
log::debug!(target: "app", "try to run core in service mode");
|
||||||
log::debug!(target: "app", "try to run core in service mode");
|
|
||||||
|
match (|| async {
|
||||||
win_service::check_service().await?;
|
win_service::check_service().await?;
|
||||||
win_service::run_core_by_service(&config_path).await
|
win_service::run_core_by_service(&config_path).await
|
||||||
} {
|
})()
|
||||||
|
.await
|
||||||
|
{
|
||||||
Ok(_) => return Ok(()),
|
Ok(_) => return Ok(()),
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
// 修改这个值,免得stop出错
|
// 修改这个值,免得stop出错
|
||||||
*self.use_service_mode.lock() = false;
|
*self.use_service_mode.lock() = false;
|
||||||
|
|
||||||
log::error!(target: "app", "{err}");
|
log::error!(target: "app", "{err}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -141,7 +143,7 @@ impl CoreManager {
|
|||||||
let (mut rx, cmd_child) = cmd.args(args).spawn()?;
|
let (mut rx, cmd_child) = cmd.args(args).spawn()?;
|
||||||
|
|
||||||
// 将pid写入文件中
|
// 将pid写入文件中
|
||||||
crate::log_err!({
|
crate::log_err!((|| {
|
||||||
let pid = cmd_child.pid();
|
let pid = cmd_child.pid();
|
||||||
let path = dirs::clash_pid_path()?;
|
let path = dirs::clash_pid_path()?;
|
||||||
fs::File::create(path)
|
fs::File::create(path)
|
||||||
@ -149,7 +151,7 @@ impl CoreManager {
|
|||||||
.write(format!("{pid}").as_bytes())
|
.write(format!("{pid}").as_bytes())
|
||||||
.context("failed to write pid to the file")?;
|
.context("failed to write pid to the file")?;
|
||||||
<Result<()>>::Ok(())
|
<Result<()>>::Ok(())
|
||||||
});
|
})());
|
||||||
|
|
||||||
let mut sidecar = self.sidecar.lock();
|
let mut sidecar = self.sidecar.lock();
|
||||||
*sidecar = Some(cmd_child);
|
*sidecar = Some(cmd_child);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user