我希望有一个带有无限循环的脚本,它会在再次执行时杀死此脚本创建的所有进程。
所以基本上你通过终端启动脚本:
bash poll.sh
并且无限运行,再打开另一个终端
bash poll.sh
并且所有poll.sh进程都将被杀死。
最好的方法是什么?我的第一个想法是设置环境变量,比如 export POLLRUNNING = true ,poll.sh会实现类似 if [$ POLLRUNNING = true];退出1
我的第二个想法是使用 touch .isrunning 和声明来询问该文件。
你会怎么做?
答案 0 :(得分:1)
pidof(8)
支持-x
标志来指定脚本;它还支持-o omitpid
标志以省略特定的pid。所以:
#!/bin/bash
PIDS=`pidof -o $$ -x poll.sh`
if [ x$PIDS != x ]
then kill -s SIGTERM $PIDS
fi
sleep 10