[−][src]Struct spirit_daemonize::Daemon
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 (Non-exhaustive)
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.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.
Implementations
impl Daemon
[src]
pub fn prepare(&self) -> Result<Daemonize, AnyError>
[src]
Prepare for daemonization.
This does the fist (fallible) phase of daemonization and schedules the rest, though the
Daemonize
. This is mostly used through [`extension'], but can also be used manually.
pub unsafe fn daemonize(&self) -> Result<(), AnyError>
[src]
Perform the daemonization according to the setup inside.
This is the routine one would call if using the fragments manually, not through the spirit
management and extension
.
Safety
This is safe to call only if either the application is yet single-threaded (it's OK to
start more threads afterwards) or if daemonize
is false
.
Trait Implementations
impl Clone for Daemon
[src]
impl Debug for Daemon
[src]
impl Default for Daemon
[src]
impl<'de> Deserialize<'de> for Daemon
[src]
pub fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Eq for Daemon
[src]
impl From<(Daemon, Opts)> for Daemon
[src]
impl From<(UserDaemon, Opts)> for Daemon
[src]
impl From<UserDaemon> for Daemon
[src]
pub fn from(ud: UserDaemon) -> Daemon
[src]
impl PartialEq<Daemon> for Daemon
[src]
impl Serialize for Daemon
[src]
pub fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl StructDoc for Daemon
[src]
pub fn document() -> Documentation
[src]
impl StructuralEq for Daemon
[src]
impl StructuralPartialEq for Daemon
[src]
Auto Trait Implementations
impl RefUnwindSafe for Daemon
[src]
impl Send for Daemon
[src]
impl Sync for Daemon
[src]
impl Unpin for Daemon
[src]
impl UnwindSafe for Daemon
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IntoResult<T> for T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,