好记性不如铅笔头

编程

linux信号相关笔记和网址记录

CONTENTS

参考链接

https://www.cnblogs.com/lidabo/p/4581026.html
https://blog.csdn.net/weixin_41656968/article/details/79232979
https://www.cnblogs.com/zhanggaofeng/p/5847232.html

kill -l 查看当前linux下支持的信号列表
:~$ 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

kill命令
kill默认发送SIGTERM()的信号,若其被signal捕捉,那我们也不慌,记住一招,kill -9 加进程号或者是killall -9 加进程名发送SIGKILL的信号,任何程序都会被秒杀。

Linux 发送信号的相关C函数

使用kill函数
int kill(pid_t pid,int sig);
参数pid指定一个要接受信号的进程,而sig是要发送的信号。

使用raise函数
int raise(int signum);
kill函数将信号发送给特定进程,raise函数允许进程向自身发送信号
raise(signum)相当于kill(getpid(),signum);

使用alarm函数
alarm函数设置了一个定时器,当定时器到了给当前进程发送SIGALRM信号。
unsigned int alarm(unsigned int seconds);
seconds是计时器时间到后时钟的秒数。
如果没有设置其他超时,函数返回0,否则返回值为前面安排超时中保留的秒数。
一个进程只能设置一次超时把seconds设置为0可以取消前面的超时设置。

abort函数
void abort(void);
该函数发送SIGABRT信号给调用进程,进程不应该忽略这个信号。
即使进程捕捉到SIGABRT这个信号,进程还是会异常退出,让进程捕捉SIGABRT的意图是在进程终止前由其执行所需的清理操作。

sleep函数
unsigned int sleep(unsigned int seconds);
参数seconds指定了睡眠时间,超过seconds制定时间,函数返回。
调用线程捕捉到一个信号并从信号处理程序返回。sleep()函数只要捕捉到一个信号就会终止sleep()函数。

pause函数
int pause(void);
pause函数挂起调用它的进程,直到有任何消息到达。调用进程必须有能力处理送达的信号,否则信号的默认部署就会发生。
只有进程捕获到一个信号的时候pause才返回,如果递送到的信号引发了对信号的处理,那么处理工作将在pause返回前执行。

settimer/gettimer函数
https://blog.csdn.net/lu_embedded/article/details/53080496

sigaction,sigqueue,signal
https://www.cnblogs.com/zhanggaofeng/p/5848005.html
https://blog.csdn.net/jnu_simba/article/details/8947652

多线程与信号集

https://www.cnblogs.com/cobbliu/p/5592659.html
https://blog.csdn.net/yusiguyuan/article/details/14237277
https://blog.csdn.net/q1007729991/article/details/62892105
https://www.cnblogs.com/mickole/p/3191281.html
https://www.cnblogs.com/mickole/

发表评论

13 − 4 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据