Add daemon mode support
This commit is contained in:
parent
b59418e60b
commit
07ed2615d0
3 changed files with 24 additions and 1 deletions
10
Cargo.lock
generated
10
Cargo.lock
generated
|
|
@ -1072,6 +1072,7 @@ version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dirs",
|
"dirs",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
|
"fork",
|
||||||
"gstreamer-tag",
|
"gstreamer-tag",
|
||||||
"i18n-embed",
|
"i18n-embed",
|
||||||
"i18n-embed-fl",
|
"i18n-embed-fl",
|
||||||
|
|
@ -1765,6 +1766,15 @@ version = "0.3.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
|
checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fork"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "05dc8b302e04a1c27f4fe694439ef0f29779ca4edc205b7b58f00db04e29656d"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "form_urlencoded"
|
name = "form_urlencoded"
|
||||||
version = "1.2.1"
|
version = "1.2.1"
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,9 @@ optional = true
|
||||||
version = "0.2.1"
|
version = "0.2.1"
|
||||||
features = ["serde"]
|
features = ["serde"]
|
||||||
|
|
||||||
|
[target.'cfg(unix)'.dependencies]
|
||||||
|
fork = "0.2"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["mpris-server", "xdg-portal", "wgpu"]
|
default = ["mpris-server", "xdg-portal", "wgpu"]
|
||||||
xdg-portal = ["libcosmic/xdg-portal"]
|
xdg-portal = ["libcosmic/xdg-portal"]
|
||||||
|
|
|
||||||
12
src/main.rs
12
src/main.rs
|
|
@ -68,7 +68,17 @@ fn language_name(code: &str) -> Option<String> {
|
||||||
|
|
||||||
/// Runs application with these settings
|
/// Runs application with these settings
|
||||||
#[rustfmt::skip]
|
#[rustfmt::skip]
|
||||||
pub fn main() -> Result<(), Box<dyn std::error::Error>> {
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
#[cfg(all(unix, not(target_os = "redox")))]
|
||||||
|
match fork::daemon(true, true) {
|
||||||
|
Ok(fork::Fork::Child) => (),
|
||||||
|
Ok(fork::Fork::Parent(_child_pid)) => process::exit(0),
|
||||||
|
Err(err) => {
|
||||||
|
eprintln!("failed to daemonize: {:?}", err);
|
||||||
|
process::exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("warn")).init();
|
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("warn")).init();
|
||||||
|
|
||||||
localize::localize();
|
localize::localize();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue