shell脚本查询进程并杀死

说明:
工作中经常需要写一个定时脚本,需要找到一个进程,然后杀死,并定时重新启动这个进程。

具体脚本如下:(ngsp代表是什么进程)

#!/bin/bash
ID=`ps -ef | grep ngsp | grep -v grep | awk '{print $2}'`
echo $ID
for id in $ID
do
kill -9 $id
echo "kill $id"
done

或者有些朋友看了,不明白,我这里就举一个httpd的例子吧

1. 安装一个apache服务

yum -y install httpd
systemctl start httpd

在这里插入图片描述
网页访问:IP:80 比如1.117.92.32:80 看到网页说明httpd部署成功了。
在这里插入图片描述

查看httpd的服务:

在这里插入图片描述

如下是脚本杀死进程和启动脚本

[root@VM-4-11-centos ~]# ls
kill_httpd.sh  start_httpd.sh
[root@VM-4-11-centos ~]# cat kill_httpd.sh 
#!/bin/bash
ID=`ps -ef | grep httpd | grep -v grep | awk '{print $2}'`
echo $ID
for id in $ID
do
kill -9 $id
echo "kill $id"
done
[root@VM-4-11-centos ~]# cat start_httpd.sh 
#!/bin/bash
systemctl start httpd
[root@VM-4-11-centos ~]# 

设置定时启动脚本:crontab -e进行编辑

[root@VM-4-11-centos ~]# crontab -l #查看定时任务,我的脚本在 /root/路径下,我这是每天10点50运行杀死进程,然后每天10点52重新启动httpd服务
*/5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'
50 10 * * * /root/kill_httpd.sh
52 10 * * * /root/start_httpd.sh
[root@VM-4-11-centos ~]# 
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐