0
我想搜索所有正在運行一小時以上的作業。殺了他們。然後睡60分鐘。再次搜索任何工作是否運行超過60?循環過程。如何在每隔一小時的時間間隔內殺死日誌運行作業?
我想搜索所有正在運行一小時以上的作業。殺了他們。然後睡60分鐘。再次搜索任何工作是否運行超過60?循環過程。如何在每隔一小時的時間間隔內殺死日誌運行作業?
如果你想找到對你的Linux機器超過60分鐘,你可以用一個非常簡單和基本的bash腳本像一個波紋管運行的進程的PID:
#!/bin/sh
MIN=60
SEC=$((MIN*60))
ps -eo etimes=,pid= | while read sec pid; do
if [ ${sec} -gt ${SEC} ]; then
echo ${pid}
#kill -9 ${pid} # remove the # at the beginning of the line to actually kill those processes
fi
done
這將顯示在正在運行的進程的PID,每行一個
假設你命名此腳本60min.sh,你可以使用cron作業運行每60分:
0 * * * * /bin/bash /path_to/60min.sh
這cron作業運行每60分鐘(或每小時)
您60min.sh腳本請記住,你可能會不小心殺死系統進程和您的系統可能會變得不穩定或無法使用,所以你將不得不重啓。
如果您使用特定的linux用戶運行不同的進程,我建議您搜索進程beloging而不是root用戶。
請發佈您到目前爲止已嘗試過的內容,並看看如何提出好問題:[問] –