[][src]Struct spirit_daemonize::Daemon

pub struct Daemon {
    pub user: SecId,
    pub group: SecId,
    pub pid_file: Option<PathBuf>,
    pub workdir: Option<PathBuf>,
    pub daemonize: bool,
    // some fields omitted
}

A configuration fragment for configuration of daemonization.

This describes how to go into background with some details.

The fields can be manipulated by the user of this crate. However, it is not possible to create the struct manually. This is on purpose, some future versions might add more fields. If you want to create one, use Daemon::default and modify certain fields as needed.

Examples

let mut daemon = Daemon::default();
daemon.workdir = Some("/".into());

See also

If you want to daemonize, but not to switch users (or allow switching users), either because the daemon needs to keep root privileges or because it is expected to be already started as ordinary user, use the UserDaemon instead.

Fields

user: SecId

The user to drop privileges to.

The user is not changed if not provided.

group: SecId

The group to drop privileges to.

The group is not changed if not provided.

pid_file: Option<PathBuf>

Where to store a PID file.

If not set, no PID file is created.

workdir: Option<PathBuf>

Switch to this working directory at startup.

If not set, working directory is not switched.

daemonize: bool

Enable the daemonization.

Even if this is false, some activity (changing users, setting PID file, etc) is still done, but it doesn't go to background.

Methods

impl Daemon[src]

pub fn daemonize(&self) -> Result<(), Error>[src]

Goes into background according to the configuration.

This does the actual work of daemonization. This can be used manually.

pub fn extension<E, F>(extractor: F) -> impl Extension<E> where
    E: Extensible<Ok = E>,
    F: Fn(&E::Config, &E::Opts) -> Self + Send + 'static, 
[src]

An extension that can be plugged into the Spirit.

See the crate documentation.

Trait Implementations

impl Eq for Daemon[src]

impl PartialEq<Daemon> for Daemon[src]

impl Clone for Daemon[src]

default fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Default for Daemon[src]

impl From<UserDaemon> for Daemon[src]

impl Debug for Daemon[src]

impl Serialize for Daemon[src]

impl<'de> Deserialize<'de> for Daemon[src]

impl StructDoc for Daemon[src]

Auto Trait Implementations

impl Send for Daemon

impl Sync for Daemon

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<T> IntoResult for T[src]

impl<T> Erased for T