我怎么能写一个处理这种信号的程序?
这就是我得到的,没有输出:
$| = 1;
kill 'USR1';
kill 'USR2';
$SIG{USR1} = {print `dd if=/def/zero of=/dev/null bs=512`};
$SIG{USR2} = {print `free -m`};
$SIG{INT} = { kill 'USR1' => $$; die};
Run Code Online (Sandbox Code Playgroud)
sub".
use strict;
use warnings;
$| = 1;
$SIG{USR1} = sub { print `dd if=/def/zero of=/dev/null bs=512`; };
$SIG{USR2} = sub { print `free -m`; };
$SIG{INT} = sub { kill USR1 => $$; die "Interrupt"; };
kill USR1 => $$;
kill USR2 => $$;
Run Code Online (Sandbox Code Playgroud)
也,
print `...`是一种愚蠢的写作方式system('...').
use strict;
use warnings;
$| = 1;
sub job1 { system('dd if=/def/zero of=/dev/null bs=512'); }
sub job2 { system('free -m'); }
$SIG{USR1} = \&job1;
$SIG{USR2} = \&job2;
$SIG{INT} = sub { job1(); die "Interrupt"; };
kill USR1 => $$;
kill USR2 => $$;
Run Code Online (Sandbox Code Playgroud)