支持服务管理 (#456)

* Support running as a Windows service.

* Optimize startup logic contro

* When running in a Windows service environment, delegate the termination of the program to the win_service_event_loop function.

* Remove the use of std::ffi::OsString at the top.

* Support  service manager

* Move the service-related features to be implemented in easytier-cli.

* Add a command line option work-dir to specify the working directory
Adjust the error handling logic
This commit is contained in:
咸鱼而已
2024-11-16 09:01:58 +08:00
committed by GitHub
parent 4fc3ff8ce8
commit 9d455e22fa
8 changed files with 762 additions and 144 deletions
Generated
+41
View File
@@ -1191,6 +1191,15 @@ dependencies = [
"objc",
]
[[package]]
name = "codepage"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48f68d061bc2828ae826206326e61251aca94c1e4a5305cf52d9138639c918b4"
dependencies = [
"encoding_rs",
]
[[package]]
name = "color_quant"
version = "1.1.0"
@@ -1866,6 +1875,7 @@ dependencies = [
"serde",
"serde_json",
"serial_test",
"service-manager",
"smoltcp",
"socket2",
"stun_codec",
@@ -2063,6 +2073,17 @@ dependencies = [
"encoding_index_tests",
]
[[package]]
name = "encoding-utils"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87b881ab2524b96a5ce932056c7482ba6152e2226fed3936b3e592adeb95ca6d"
dependencies = [
"codepage",
"encoding_rs",
"windows-sys 0.52.0",
]
[[package]]
name = "encoding_index_tests"
version = "0.1.4"
@@ -6543,6 +6564,20 @@ dependencies = [
"syn 1.0.109",
]
[[package]]
name = "service-manager"
version = "0.7.1"
source = "git+https://github.com/chipsenkbeil/service-manager-rs.git?branch=main#13dae5e8160f91fdc9834d847165cc5ce0a72fb3"
dependencies = [
"cfg-if",
"dirs 4.0.0",
"encoding-utils",
"encoding_rs",
"plist",
"which",
"xml-rs",
]
[[package]]
name = "servo_arc"
version = "0.1.1"
@@ -9339,6 +9374,12 @@ dependencies = [
"windows-sys 0.59.0",
]
[[package]]
name = "xml-rs"
version = "0.8.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26"
[[package]]
name = "yansi"
version = "1.0.1"