The "cross-platform-service" crate lets you developing cross-platform services and service managers for Windows, Linux, and macOS. It supports install, delete, start and stop.
On Windows, API is called by using the microsoft/windows-rs crate, And it is also possible to call the Windows API directory if the service has special needs for Windows.
On Linux, D-Bus used for communication with systemd. The default behavior is defining a systemd service unit, in "/etc/systemd/system" path.
```toml
```
```rust use std::fs::OpenOptions; use std::io::Write; use std::sync::Arc; use std::sync::atomic::{AtomicBool, Ordering}; use std::time::Duration;
use servicemanagerrs::service::start_service;
const SERVICE_NAME: &str = "MyCrPlSVC";
fn main() { startservice(SERVICENAME, service_main); }
fn service_main(running: Arc
return;
}
std::thread::sleep(Duration::from_millis(100));
}
} ```
To compile the project on Linux, D-Bus developing libraries are required, which is may be installed with the following command:
shell
apt install libdbus-1-dev
Install a cross-platform Service
Delete a cross-platform service
Start a cross-platform service