POSIX::1003::Signals - POSIX using signals
POSIX::1003::Signals is a POSIX::1003::Module
use POSIX::1003::Signals qw(:functions SIGPOLL SIGHUP); sigaction($signal, $action, $oldaction); sigpending($sigset); sigprocmask($how, $sigset, $oldsigset) sigsuspend($signal_mask); kill SIGPOLL//SIGHUP, $$; use POSIX::1003::Signals '%signals'; my $number = $signals{SIGHUP}; $signals{SIGNEW} = $number;
This manual page explains the access to the POSIX sigaction functions and its relatives. This module uses two helper objects: POSIX::SigSet and POSIX::SigAction.
sigaction
See documentation in base class.
See "METHODS" in POSIX::1003::Module
These functions are implemened in POSIX.xs
Simply "kill" in perlfunc.
Be warned the order of parameters is reversed in the kill exported by POSIX!
kill
CORE::kill($signal, $pid); ::Signals::kill($signal, $pid); POSIX::kill($pid, $signal);
Send a signal to the executing process.
Detailed signal management. The signal must be a number (like SIGHUP), not a string (like "SIGHUP"). The action and oldaction arguments are POSIX::SigAction objects. Returns undef on failure.
signal
action
oldaction
POSIX::SigAction
undef
If you use the SA_SIGINFO flag, the signal handler will in addition to the first argument (the signal name) also receive a second argument: a hash reference, inside which are the following keys with the following semantics, as defined by POSIX/SUSv3:
SA_SIGINFO flag
signo the signal number errno the error number code if this is zero or less, the signal was sent by a user process and the uid and pid make sense, otherwise the signal was sent by the kernel
The following are also defined by POSIX/SUSv3, but unfortunately not very widely implemented:
pid the process id generating the signal uid the uid of the process id generating the signal status exit value or signal for SIGCHLD band band event for SIGPOLL
A third argument is also passed to the handler, which contains a copy of the raw binary contents of the siginfo structure: if a system has some non-POSIX fields, this third argument is where to unpack() them from.
Note that not all siginfo values make sense simultaneously (some are valid only for certain signals, for example), and not all values make sense from Perl perspective.
Set the CODE (subroutine reference) to be called when the SIGNAL appears. See "%SIG" in perlvar.
signal(SIGINT, \&handler); $SIG{SIGINT} = \&handler; # same
Examine signals that are blocked and pending. This uses POSIX::SigSet objects for the sigset argument. Returns undef on failure.
POSIX::SigSet
sigset
Change and/or examine calling process's signal mask. This uses POSIX::SigSet objects for the sigset and oldsigset arguments. Returns undef on failure.
oldsigset
Note that you can't reliably block or unblock a signal from its own signal handler if you're using safe signals. Other signals can be blocked or unblocked reliably.
Install a signal mask and suspend process until signal arrives. This uses POSIX::SigSet objects for the signal_mask argument. Returns undef on failure.
signal_mask
Returns a string reprentation of the SIGNAL. When the SIGNAL is unknown, a standard string is returned (never undef)
Returns a list with all known names, unsorted.
This exported variable is a (tied) HASH which maps SIG* names to their numbers.
SIG*
The following constants are exported, shown here with the values discovered during installation of this module:
SA_NOCLDSTOP 1 SIGKILL 9 SA_NOCLDWAIT 2 SIGPIPE 13 SA_NODEFER 1073741824 SIGPOLL 29 SA_ONSTACK 134217728 SIGPROF 27 SA_RESETHAND 2147483648 SIGPWR 30 SA_RESTART 268435456 SIGQUIT 3 SA_SIGINFO 4 SIGRTMAX 64 SIG_BLOCK 0 SIGRTMIN 34 SIG_DFL 0 SIGSEGV 11 SIG_ERR -1 SIGSTKFLT 16 SIG_IGN 1 SIGSTOP 19 SIG_SETMASK 2 SIGSYS 31 SIG_UNBLOCK 1 SIGTERM 15 SIGABRT 6 SIGTRAP 5 SIGALRM 14 SIGTSTP 20 SIGBUS 7 SIGTTIN 21 SIGCHLD 17 SIGTTOU 22 SIGCLD 17 SIGURG 23 SIGCONT 18 SIGUSR1 10 SIGFPE 8 SIGUSR2 12 SIGHUP 1 SIGVTALRM 26 SIGILL 4 SIGWINCH 28 SIGINT 2 SIGXCPU 24 SIGIO 29 SIGXFSZ 25 SIGIOT 6
This module is part of POSIX-1003 distribution version 0.94_3, built on June 10, 2013. Website: http://perl.overmeer.net. The code is based on POSIX, which is released with Perl itself. See also POSIX::Util for additional functionality.
Copyrights 2011-2013 on the perl code and the related documentation by [Mark Overmeer]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html
To install POSIX::1003, copy and paste the appropriate command in to your terminal.
cpanm
cpanm POSIX::1003
CPAN shell
perl -MCPAN -e shell install POSIX::1003
For more information on module installation, please visit the detailed CPAN module installation guide.