shell脚本后台运行于服务器,忘记kill导致脚本不断产生新的脚本相关的PID,如何kill这个后台脚本?

脚本运行于后台后,忘记kill,这个脚本会产生大量的子进程,将服务器的大量资源占用。

那么问题来了,如何将该脚本在后台中kill呢?如果直接kill子进程,那么将会子子孙孙无穷尽。。。。。显然这个方法是行不通的!
使用如下命令:
ps -ef | grep “后台运行的脚本名”
会打印出相关信息

ps -ef | grep disk_test.sh
user      2326 17774  0 16:59 pts/1    00:00:00 grep --color=auto disk_test.sh
user     21902 21889  0 16:37 ?        00:00:00 /bin/sh -c /home_b/nfsroot/user/chip_rootfs/root-uclibc-toolchain/system/disk_test.sh
user     21905 21902 10 16:37 ?        00:02:22 /bin/sh /home_b/nfsroot/user/chip_rootfs/root-uclibc-toolchain/system/disk_test.sh
user     25068     1 10 16:41 ?        00:01:54 /bin/sh /home_b/nfsroot/user/chip_rootfs/root-uclibc-toolchain/system/disk_test.sh
user     29020 28977  0 16:43 ?        00:00:00 /bin/sh -c /home_b/nfsroot/user/chip_rootfs/root-uclibc-toolchain/system/disk_test.sh
user     29032 29020 10 16:43 ?        00:01:43 /bin/sh /home_b/nfsroot/user/chip_rootfs/root-uclibc-toolchain/system/disk_test.sh
user     30307 30305  0 16:36 ?        00:00:00 /bin/sh -c /home_b/nfsroot/user/chip_rootfs/root-uclibc-toolchain/system/disk_test.sh
user     30309 30307 10 16:36 ?        00:02:28 /bin/sh /home_b/nfsroot/user/chip_rootfs/root-uclibc-toolchain/system/disk_test.sh
user     30752 30719  0 16:40 ?        00:00:00 /bin/sh -c /home_b/nfsroot/user/chip_rootfs/root-uclibc-toolchain/system/disk_test.sh
user     30758 30752 10 16:40 ?        00:02:00 /bin/sh /home_b/nfsroot/user/chip_rootfs/root-uclibc-toolchain/system/disk_test.sh

使用kill将相关的进程ID删除,然后在top命令下看到运行脚本已经关闭了!

posted @ 2022-03-27 17:52  合滨  阅读(230)  评论(1编辑  收藏  举报