我有以下内容:
kill -9 `ps aux | grep php | awk '$9 !~ /[0-9]:[0-9]/' | awk '{print $2}'`
它所做的是杀死被 fcgid 遗弃的进程并杀死它们以释放 RAM。我想每小时运行一次,但想杀死一个小时以上的进程。我只是不确定如何修改脚本来做到这一点。
我有以下内容:
kill -9 `ps aux | grep php | awk '$9 !~ /[0-9]:[0-9]/' | awk '{print $2}'`
它所做的是杀死被 fcgid 遗弃的进程并杀死它们以释放 RAM。我想每小时运行一次,但想杀死一个小时以上的进程。我只是不确定如何修改脚本来做到这一点。
尝试以下 bash 代码:
for i in $(pidof php); do
pidtime=$(stat -c '%Y' /proc/$i)
now=$(date +%s)
((now - pidtime >= 3600)) && { kill $i; sleep 1; kill &>/dev/null -9 $i; }
done
和 crontab :
crontab -e
0 * * * * /path/to/the/script.bash
解决了:
/bin/ps -Ao"command,pid,ppid"|/bin/grep ' 1$'|/bin/grep /php|/bin/awk '{ print $2; }'|/usr/bin/xargs --no-run-if-empty kill -9