diff --git a/README.md b/README.md index 4c2748b..9e56e3a 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ Project or files: │   ├── c2 │   ├── c_export │   ├── c_layout +│   ├── calltoc │   ├── cpp │   ├── dotalib │   ├── jni @@ -110,6 +111,7 @@ Project or files: ├── __misc │   ├── better_panic │   ├── bytes +│   ├── daemonize-demo │   ├── erasure-coding │   ├── fancy-regex │   ├── fastqr @@ -208,6 +210,7 @@ Project or files: │   ├── deno_rust_wasm_import_functions │   ├── deno_rust_wasm_js_sandbox │   ├── deno_rust_wasm_qr_decode +│   ├── extism │   ├── js-wasm │   ├── wasi │   ├── wasm @@ -255,6 +258,6 @@ Project or files: ├── vec.rs └── while.rs -224 directories, 38 files +227 directories, 38 files ``` diff --git a/__misc/daemonize-demo/Cargo.lock b/__misc/daemonize-demo/Cargo.lock new file mode 100644 index 0000000..5105ac9 --- /dev/null +++ b/__misc/daemonize-demo/Cargo.lock @@ -0,0 +1,32 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "boxfnonce" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5988cb1d626264ac94100be357308f29ff7cbdd3b36bda27f450a4ee3f713426" + +[[package]] +name = "daemonize" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70c24513e34f53b640819f0ac9f705b673fcf4006d7aab8778bee72ebfc89815" +dependencies = [ + "boxfnonce", + "libc", +] + +[[package]] +name = "daemonize-demo" +version = "0.1.0" +dependencies = [ + "daemonize", +] + +[[package]] +name = "libc" +version = "0.2.139" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" diff --git a/__misc/daemonize-demo/Cargo.toml b/__misc/daemonize-demo/Cargo.toml new file mode 100644 index 0000000..10f1fd5 --- /dev/null +++ b/__misc/daemonize-demo/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "daemonize-demo" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +daemonize = "0.4.1" diff --git a/__misc/daemonize-demo/README.md b/__misc/daemonize-demo/README.md new file mode 100644 index 0000000..4189fb6 --- /dev/null +++ b/__misc/daemonize-demo/README.md @@ -0,0 +1,3 @@ + +https://github.com/knsd/daemonize + diff --git a/__misc/daemonize-demo/src/main.rs b/__misc/daemonize-demo/src/main.rs new file mode 100644 index 0000000..c7daaf7 --- /dev/null +++ b/__misc/daemonize-demo/src/main.rs @@ -0,0 +1,25 @@ +use std::fs::File; + +use daemonize::Daemonize; + +fn main() { + let stdout = File::create("/tmp/daemon.out").unwrap(); + let stderr = File::create("/tmp/daemon.err").unwrap(); + + let daemonize = Daemonize::new() + .pid_file("/tmp/test.pid") // Every method except `new` and `start` + .chown_pid_file(true) // is optional, see `Daemonize` documentation + .working_directory("/tmp") // for default behaviour. + .user("nobody") + .group("daemon") // Group name + .group(2) // or group id. + .umask(0o777) // Set umask, `0o027` by default. + .stdout(stdout) // Redirect stdout to `/tmp/daemon.out`. + .stderr(stderr) // Redirect stderr to `/tmp/daemon.err`. + .privileged_action(|| "Executed before drop privileges"); + + match daemonize.start() { + Ok(_) => println!("Success, daemonized"), + Err(e) => eprintln!("Error, {}", e), + } +} \ No newline at end of file