未安装服务时在当前进程运行

This commit is contained in:
lbl8603
2023-02-07 18:11:45 +08:00
committed by GitHub
parent 80109fd8aa
commit efb7053931
+14 -14
View File
@@ -1,15 +1,15 @@
use std::{io, thread};
use std::ffi::OsString; use std::ffi::OsString;
use std::path::PathBuf; use std::path::PathBuf;
use std::time::Duration; use std::time::Duration;
use std::{io, thread};
use clap::Parser; use clap::Parser;
use console::style; use console::style;
use windows_service::Error;
use windows_service::service::{ use windows_service::service::{
ServiceAccess, ServiceErrorControl, ServiceInfo, ServiceStartType, ServiceState, ServiceType, ServiceAccess, ServiceErrorControl, ServiceInfo, ServiceStartType, ServiceState, ServiceType,
}; };
use windows_service::service_manager::{ServiceManager, ServiceManagerAccess}; use windows_service::service_manager::{ServiceManager, ServiceManagerAccess};
use windows_service::Error;
use crate::config; use crate::config;
@@ -109,13 +109,13 @@ pub fn main0() {
println!("{}", style("卸载成功").green()) println!("{}", style("卸载成功").green())
} }
} else if args.start { } else if args.start {
match service_state() {
Ok(state) => {
if state == ServiceState::Stopped {
if args.token.is_none() { if args.token.is_none() {
println!("{}", style("需要参数 --token").red()); println!("{}", style("需要参数 --token").red());
} else { } else {
let token = args.token.clone().unwrap(); let token = args.token.clone().unwrap();
match service_state() {
Ok(state) => {
if state == ServiceState::Stopped {
config::save_config(config::ArgsConfig::new( config::save_config(config::ArgsConfig::new(
token.clone(), token.clone(),
args.name.clone(), args.name.clone(),
@@ -126,6 +126,14 @@ pub fn main0() {
//需要检查启动状态 //需要检查启动状态
println!("{}", style("启动成功").green()) println!("{}", style("启动成功").green())
} }
Err(e) => {
log::error!("{:?}", e);
}
}
} else {
println!("服务未停止");
}
}
Err(e) => { Err(e) => {
match e { match e {
Error::Winapi(ref e) => { Error::Winapi(ref e) => {
@@ -143,18 +151,10 @@ pub fn main0() {
} }
_ => {} _ => {}
} }
log::error!("{:?}", e);
}
}
}
} else {
println!("服务未停止");
}
}
Err(e) => {
println!("{:?}", e); println!("{:?}", e);
} }
} }
}
} else if args.stop { } else if args.stop {
match stop() { match stop() {
Ok(_) => { Ok(_) => {