我有一个问题,我的脚本不断生成新的 ssh 进程。我知道这不应该发生,但我想时不时地清理一下旧的。
如果我做 :
ps -ef | grep "ssh" | awk '{print $2}'
我获得了正在运行的 ssh 进程的所有 PID 列表。
我想杀死所有的进程,除了最后生成的一两个进程(PID 号最高的进程)。
我该怎么办呢?
答案1
while [ $(pgrep -c ssh) -gt 1 ]
do
pkill --oldest -f ssh
done
只要有多个ssh
进程,就杀死最旧的(“最近最少启动的”)进程。如果您的 PID 空间环绕或者您使用了随机 PID,那么最近最少启动可能是比“最低 PID”更好的指标。