A Rust crate that provides Windows Service runtime environment detection.
See the documentation library documentation.
See the provided example in examples/service.rs
for a fully functional example.
TL;DR, in your main.rs
you should do something like:
use windows_service_detector::is_running_as_windows_service;
fn main() {
if is_running_as_windows_service().unwrap() {
run_service();
} else {
println!("this is not a service");
}
}
To demonstrate the example binary running as a normal command line program:
cargo run --example service
To demonstrate the same binary running as a Windows Service, use the provided test script in an Administrator command prompt:
.\example-service-test.ps1
This crate is considered feature-complete, as its sole purpose is to provide Windows Service environment detection.
If you find a bug, please report it through the GitHub issue tracker for this repository.