加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在shell脚本中杀死backgound进程

发布时间:2020-12-15 21:08:33 所属栏目:安全 来源:网络整理
导读:我有一个启动后台进程的脚本. #!/bin/sh./process1.sh ./process2.sh 我需要使用单独的脚本来终止这些进程. 这是我做的: #!/bin/sh# the kill.shpid=$(ps | grep './process1.sh' |grep -v grep| awk '{print $1}')kill -9 $pid 提问时间: 当调用kill.sh时
我有一个启动后台进程的脚本.

#!/bin/sh

./process1.sh &
./process2.sh &

我需要使用单独的脚本来终止这些进程.
这是我做的:

#!/bin/sh
# the kill.sh

pid=$(ps | grep './process1.sh' |grep -v grep| awk '{print $1}')
kill -9 $pid

提问时间:

>当调用kill.sh时,进程被停止.但是我收到了消息

“嘘:你需要指定杀人”.
这是为什么?
>在我使用所描述的脚本终止进程后,它不会立即停止.有一段时间我在屏幕上看到输出,就好像进程仍在运行一样.有什么想法吗?
>什么可以成为杀死进程的替代解决方案?

值得一提的是我正在使用busybox,我选择的实用程序有限.

任何帮助,将不胜感激.

解决方法

您可以将进程ID存储在这样的临时文件中:

#!/bin/sh

./process1.sh &
echo $! > /tmp/process1.pid
./process2.sh &
echo $! > /tmp/process2.pid

然后用脚本删除它. $!返回上次执行的进程的PID.

kill -9 `cat /tmp/process*.pid`
rm /tmp/process*.pid

确保在相应的脚本完成后删除进程* .pid文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读