什么是信号?
kill命令发给操作系统,让操作系统去执行的一个指令。
#常见信号列表:
数字信号 信号别名 作用
1 HUP 挂起信号 往往可以让进程重新配置,重新加载
2 INT 中断信号,起到结束进程的作用,和ctrl+c的作用一样
3 QUIT 让进程退出,结果是进程退出
9 KILL 直接结束进程,不能被进程捕获(强制杀死,慎用)
15 TERM 进程终止,这是默认信号
18 CONT 被暂停的进程将继续恢复运行
19 STOP 暂停进程
20 TSTP 用户停止请求,作用类似于ctrl+z 把进程放到后台并暂停 #后台挂起
生产经验:
1.强制杀,导致服务起不来。一般不要操作,宁愿等一会。
2.数据服务不能强杀, mysql,oracle,mongodb(数据库里,磁盘上有自己的文件系统),千万别强杀。
3.非数据服务可以强杀,nginx,vsftpd(数据在磁盘上)
生产经验:
判断进程是否存在方法1:
kill -0 pid #是不发送关闭停止信号,但是会检查进程是否存在。
生产用途:检查进程是否存在。实际应用,mysql服务关闭的时候。
kill PID
以后学习shell脚本开发,关闭服务的时候,就可以用kill -0
如果vsftpd存在则输出1,否则输出0
[root@oldboy ~]# kill -0 pgrep vsftpd
2>/dev/null && echo 1||echo 0
1
杀掉vsftpd
[root@oldboy ~]# killall vsftpd
检查
[root@oldboy ~]# kill -0 pgrep vsftpd
2>/dev/null && echo 1||echo 0
0
[root@oldboy ~]# pgrep vsftpd
判断进程是否存在方法2:
[root@oldboy ~]# pgrep vsftpd &>/dev/null&&echo 1||echo 0
1
[root@oldboy ~]#
[root@oldboy ~]#
[root@oldboy ~]# killall vsftpd
[root@oldboy ~]# pgrep vsftpd &>/dev/null&&echo 1||echo 0
0