スクリプト
- クソマルコフ連鎖アルゴリズム組んだ時に暴走したスクリプトを止めるために作ったクソスクリプト
- cronで1分に1回動かせば
"$ElapsedTime" -gt 300
で設定した以上の時間動いているプロセスを殺す
#!/bin/bash
if [ "$#" -ne 1 ]; then
echo "Argment Error"
exit 1
fi
ProcessName="$1"
PID=$$
for i in $(ps -ef | grep "$ProcessName" | grep -v "$PID" | grep -v grep | awk '{print $2}')
do
TIME=$(ps -o lstart --noheader -p "$i")
if [ -n "$TIME" ]; then
StartupTime=$(date +%s -d "$TIME")
CurrentTime=$(date +%s)
ElapsedTime=$((CurrentTime - StartupTime))
else
ElapsedTime=1
fi
if [ "$ElapsedTime" -gt 300 ]; then
echo "-----------------------------pkill info"
echo "$(date)"
ps ef -p "$i"
kill "$i"
fi
done
- 使い方
./kill_task.sh "/ubuntu/kuso_proguramu"
/ubuntu/kuso_proguramu下で動いているやついたら殺す