[历史归档]本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。
发布时间:2018-11-23| 标题:linux信号相关笔记和网址记录|分类:编程 |标签:linux·signal
Linux信号简单笔记
- 参考链接
- Linux 发送信号的相关C函数
- 多线程与信号集
参考链接
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
- SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
- SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
- SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
- SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
- SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
- SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
- SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
- SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
- SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
- SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
- SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
- SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
- 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/