Skip to main content

Signal

Enum Signal 

Source
pub enum Signal {
Show 13 variants Hup, Int, Ill, Abrt, Fpe, Pipe, Alrm, Term, Usr1, Usr2, Winch, Cont, Urg,
}
Expand description

A UNIX signal that can be received through a Signals channel.

Signals that cannot be caught (SIGKILL), that generate core dumps by default (SIGQUIT), or that indicate unrecoverable program faults (SIGSEGV) are intentionally excluded.

Variants§

§

Hup

SIGHUP — terminal hang-up or controlling process died.

§

Int

SIGINT — interactive interrupt (typically Ctrl-C).

§

Ill

SIGILL — illegal CPU instruction.

§

Abrt

SIGABRT — process abort.

§

Fpe

SIGFPE — floating-point exception.

§

Pipe

SIGPIPE — write to a broken pipe.

§

Alrm

SIGALRM — alarm-clock timer expired.

§

Term

SIGTERM — polite termination request.

§

Usr1

SIGUSR1 — user-defined signal 1.

§

Usr2

SIGUSR2 — user-defined signal 2.

§

Winch

SIGWINCH — terminal window-size change.

§

Cont

SIGCONT — continue a stopped process.

§

Urg

SIGURG — urgent data available on a socket.

Implementations§

Source§

impl Signal

Source

pub fn is_terminating(&self) -> bool

Returns true if this signal’s conventional action is to terminate the process.

The terminating signals are: Int, Term, Ill, Abrt, and Fpe.

All other signals — Hup, Pipe, Alrm, Usr1, Usr2, Winch, Cont, Urg — are non-terminating and may be handled without exiting.

§Examples
use signal_msg::Signal;

assert!(Signal::Int.is_terminating());
assert!(Signal::Term.is_terminating());
assert!(!Signal::Usr1.is_terminating());
assert!(!Signal::Winch.is_terminating());
Examples found in repository?
examples/signal-msg-demo.rs (line 10)
3fn main() {
4    let signals = Signals::new().expect("failed to create signal handler");
5    println!("Waiting for signals...");
6    println!("(try SIGUSR1, SIGWINCH, SIGCONT; send SIGINT or SIGTERM to exit)\n");
7
8    for sig in signals.subscribe() {
9        println!("Got signal: {}", sig);
10        if sig.is_terminating() {
11            println!("\nTerminating on {}.", sig);
12            break;
13        }
14    }
15}

Trait Implementations§

Source§

impl Clone for Signal

Source§

fn clone(&self) -> Signal

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Signal

Source§

impl Debug for Signal

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Signal

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Signal

Source§

impl Hash for Signal

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Signal

Source§

fn eq(&self, other: &Signal) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Signal

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.