gpt4 book ai didi

linux - 在 Linux 中创建一个新信号

转载 作者:太空狗 更新时间:2023-10-29 11:29:39 27 4
gpt4 key购买 nike

有没有办法在 linux 中创建自定义信号。就像让我们说什么时候“echo crazy”在文件中被执行?每当该信号被执行时,我都会停止使用该信号的进程......此外,我还想将 perl Enbugger 与新信号一起使用。有没有办法做到这一点?我从 http://metacpan.org/pod/Enbugger 找到了这个

 use Enbugger::OnError qw( USR1 USR2 INT HUP );

其中 USR1 和 USR2 是用户定义的信号。

最佳答案

Perl 中的信号处理利用操作系统的信号功能,通常具有一组预定义和固定的信号。但是许多系统确实分配了没有任何特定用途的“额外”信号,这些信号可能会被用户进程使用。例如,我的 Red Hat 系统提供了这些信号:

$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX

您可以看到信号 34 到 64 都是用 SIGRTMINSIGRTMAX 表示的。这些是用户可以征用的信号,而不必担心会干扰系统通常想要做的任何事情。在 Perl 中,您可以使用诸如 NUM35 之类的助记符为它们分配信号处理程序,并使用助记符 (kill 'NUM37', $pid) 或仅使用信号编号(kill 37, $pid)。

关于linux - 在 Linux 中创建一个新信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18107447/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com