This commit is contained in:
parent
81aec8402b
commit
85f387bfb9
Binary file not shown.
Before Width: | Height: | Size: 651 B After Width: | Height: | Size: 612 B |
@ -265,7 +265,8 @@ pub fn core_main() -> Option<Vec<String>> {
|
||||
return None;
|
||||
} else if args[0] == "--uninstall-service" {
|
||||
log::info!("start --uninstall-service");
|
||||
crate::platform::uninstall_service(false);
|
||||
crate::platform::uninstall_service(false, true);
|
||||
return None;
|
||||
} else if args[0] == "--service" {
|
||||
log::info!("start --service");
|
||||
crate::start_os_service();
|
||||
@ -277,7 +278,6 @@ pub fn core_main() -> Option<Vec<String>> {
|
||||
#[cfg(any(target_os = "linux", target_os = "windows"))]
|
||||
{
|
||||
crate::start_server(true);
|
||||
return None;
|
||||
}
|
||||
#[cfg(target_os = "macos")]
|
||||
{
|
||||
@ -286,6 +286,7 @@ pub fn core_main() -> Option<Vec<String>> {
|
||||
// prevent server exit when encountering errors from tray
|
||||
hbb_common::allow_err!(handler.join());
|
||||
}
|
||||
return None;
|
||||
} else if args[0] == "--import-config" {
|
||||
if args.len() == 2 {
|
||||
let filepath;
|
||||
|
@ -1275,7 +1275,7 @@ fn switch_service(stop: bool) -> String {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn uninstall_service(show_new_window: bool) -> bool {
|
||||
pub fn uninstall_service(show_new_window: bool, _: bool) -> bool {
|
||||
if !has_cmd("systemctl") {
|
||||
return false;
|
||||
}
|
||||
|
@ -219,7 +219,7 @@ fn correct_app_name(s: &str) -> String {
|
||||
s
|
||||
}
|
||||
|
||||
pub fn uninstall_service(show_new_window: bool) -> bool {
|
||||
pub fn uninstall_service(show_new_window: bool, sync: bool) -> bool {
|
||||
// to-do: do together with win/linux about refactory start/stop service
|
||||
if !is_installed_daemon(false) {
|
||||
return false;
|
||||
@ -232,7 +232,7 @@ pub fn uninstall_service(show_new_window: bool) -> bool {
|
||||
return false;
|
||||
};
|
||||
|
||||
std::thread::spawn(move || {
|
||||
let func = move || {
|
||||
match std::process::Command::new("osascript")
|
||||
.arg("-e")
|
||||
.arg(script_body)
|
||||
@ -275,7 +275,12 @@ pub fn uninstall_service(show_new_window: bool) -> bool {
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
if sync {
|
||||
func();
|
||||
} else {
|
||||
std::thread::spawn(func);
|
||||
}
|
||||
true
|
||||
}
|
||||
|
||||
@ -515,7 +520,7 @@ pub fn start_os_service() {
|
||||
// https://emorydunn.github.io/LaunchAgent/Classes/LaunchAgent.html#/s:11LaunchAgentAAC16throttleIntervalSiSgvp,
|
||||
// by default, ThrottleInterval = 10, we changed it to 1
|
||||
if dt >= 0 {
|
||||
std::thread::sleep(std::time::Duration::from_secs(dt.clamp(3, 30) as _));
|
||||
std::thread::sleep(std::time::Duration::from_secs(dt.clamp(0, 15) as _));
|
||||
}
|
||||
log::info!("The others killed");
|
||||
std::process::exit(0);
|
||||
|
@ -8,8 +8,9 @@
|
||||
<true/>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/Applications/RustDesk.app/Contents/MacOS/RustDesk</string>
|
||||
<string>--service</string>
|
||||
<string>/bin/sh</string>
|
||||
<string>-c</string>
|
||||
<string>sleep 1.5; /Applications/RustDesk.app/Contents/MacOS/RustDesk --service</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
|
@ -2302,7 +2302,7 @@ impl Drop for WakeLock {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn uninstall_service(show_new_window: bool) -> bool {
|
||||
pub fn uninstall_service(show_new_window: bool, _: bool) -> bool {
|
||||
log::info!("Uninstalling service...");
|
||||
let filter = format!(" /FI \"PID ne {}\"", get_current_pid());
|
||||
Config::set_option("stop-service".into(), "Y".into());
|
||||
|
@ -131,7 +131,7 @@ pub fn make_tray() -> hbb_common::ResultType<()> {
|
||||
return;
|
||||
}
|
||||
*/
|
||||
if !crate::platform::uninstall_service(false) {
|
||||
if !crate::platform::uninstall_service(false, false) {
|
||||
*control_flow = ControlFlow::Exit;
|
||||
}
|
||||
} else if event.id == open_i.id() {
|
||||
|
@ -348,7 +348,7 @@ pub fn set_option(key: String, value: String) {
|
||||
#[cfg(target_os = "macos")]
|
||||
{
|
||||
let is_stop = value == "Y";
|
||||
if is_stop && crate::platform::macos::uninstall_service(true) {
|
||||
if is_stop && crate::platform::uninstall_service(true, false) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -356,7 +356,7 @@ pub fn set_option(key: String, value: String) {
|
||||
{
|
||||
if crate::platform::is_installed() {
|
||||
if value == "Y" {
|
||||
if crate::platform::uninstall_service(true) {
|
||||
if crate::platform::uninstall_service(true, false) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user