Module: Signal
- Defined in:
- signal.c
Class Method Summary collapse
-
.list ⇒ Hash
Returns a list of signal names mapped to the corresponding underlying signal numbers.
-
.trap ⇒ Object
Specifies the handling of signals.
Instance Method Summary collapse
-
#list ⇒ Hash
private
Returns a list of signal names mapped to the corresponding underlying signal numbers.
-
#trap ⇒ Object
private
Specifies the handling of signals.
Class Method Details
.list ⇒ Hash
Returns a list of signal names mapped to the corresponding underlying signal numbers.
Signal.list #=> "ALRM"=>14, "BUS"=>7, "CHLD"=>17, "CLD"=>17, "CONT"=>18, "FPE"=>8, "HUP"=>1, "ILL"=>4, "INT"=>2, "IO"=>29, "IOT"=>6, "KILL"=>9, "PIPE"=>13, "POLL"=>29, "PROF"=>27, "PWR"=>30, "QUIT"=>3, "SEGV"=>11, "STOP"=>19, "SYS"=>31, "TERM"=>15, "TRAP"=>5, "TSTP"=>20, "TTIN"=>21, "TTOU"=>22, "URG"=>23, "USR1"=>10, "USR2"=>12, "VTALRM"=>26, "WINCH"=>28, "XCPU"=>24, "XFSZ"=>25
940 941 942 943 944 945 946 947 948 949 950 |
# File 'signal.c', line 940
static VALUE
sig_list()
{
VALUE h = rb_hash_new();
struct signals *sigs;
for (sigs = siglist; sigs->signm; sigs++) {
rb_hash_aset(h, rb_str_new2(sigs->signm), INT2FIX(sigs->signo));
}
return h;
}
|
.trap(signal, proc) ⇒ Object .trap(signal) {|| ... } ⇒ Object
Specifies the handling of signals. The first parameter is a signal
name (a string such as SIGALRM'', SIGUSR1'', and so on) or a
signal number. The characters SIG'' may be omitted from the signal name. The command or block specifies code to be run when the signal is raised. If the command is the string IGNORE'' or
SIG_IGN'', the signal will be ignored. If the command is DEFAULT'' or SIG_DFL'', the operating system's default handler will be invoked. If the command is EXIT'', the script will be
terminated by the signal. Otherwise, the given command or block
will be run.
The special signal name ``EXIT'' or signal number zero will be
invoked just prior to program termination.
trap returns the previous handler for the given signal.
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait
produces: Terminating: 27461 Child died Terminating: 27460
893 894 895 |
# File 'signal.c', line 893 static VALUE sig_trap(argc, argv) int argc; |
Instance Method Details
#list ⇒ Hash (private)
Returns a list of signal names mapped to the corresponding underlying signal numbers.
Signal.list #=> "ALRM"=>14, "BUS"=>7, "CHLD"=>17, "CLD"=>17, "CONT"=>18, "FPE"=>8, "HUP"=>1, "ILL"=>4, "INT"=>2, "IO"=>29, "IOT"=>6, "KILL"=>9, "PIPE"=>13, "POLL"=>29, "PROF"=>27, "PWR"=>30, "QUIT"=>3, "SEGV"=>11, "STOP"=>19, "SYS"=>31, "TERM"=>15, "TRAP"=>5, "TSTP"=>20, "TTIN"=>21, "TTOU"=>22, "URG"=>23, "USR1"=>10, "USR2"=>12, "VTALRM"=>26, "WINCH"=>28, "XCPU"=>24, "XFSZ"=>25
940 941 942 943 944 945 946 947 948 949 950 |
# File 'signal.c', line 940
static VALUE
sig_list()
{
VALUE h = rb_hash_new();
struct signals *sigs;
for (sigs = siglist; sigs->signm; sigs++) {
rb_hash_aset(h, rb_str_new2(sigs->signm), INT2FIX(sigs->signo));
}
return h;
}
|
#trap(signal, proc) ⇒ Object (private) #trap(signal) {|| ... } ⇒ Object (private)
Specifies the handling of signals. The first parameter is a signal
name (a string such as SIGALRM'', SIGUSR1'', and so on) or a
signal number. The characters SIG'' may be omitted from the signal name. The command or block specifies code to be run when the signal is raised. If the command is the string IGNORE'' or
SIG_IGN'', the signal will be ignored. If the command is DEFAULT'' or SIG_DFL'', the operating system's default handler will be invoked. If the command is EXIT'', the script will be
terminated by the signal. Otherwise, the given command or block
will be run.
The special signal name ``EXIT'' or signal number zero will be
invoked just prior to program termination.
trap returns the previous handler for the given signal.
Signal.trap(0, proc { puts "Terminating: #{$$}" })
Signal.trap("CLD") { puts "Child died" }
fork && Process.wait
produces: Terminating: 27461 Child died Terminating: 27460
893 894 895 |
# File 'signal.c', line 893 static VALUE sig_trap(argc, argv) int argc; |