0
1時間以上実行しているすべてのジョブを検索したい。それらを殺す。その後、60分間寝ます。 60以上のジョブが実行されているかどうかを再度検索しますか?プロセスをループします。1時間ごとにログ実行中のジョブを強制終了する方法はありますか?
1時間以上実行しているすべてのジョブを検索したい。それらを殺す。その後、60分間寝ます。 60以上のジョブが実行されているかどうかを再度検索しますか?プロセスをループします。1時間ごとにログ実行中のジョブを強制終了する方法はありますか?
あなたは1つの怒鳴るように非常にシンプルかつ基本的なbashスクリプトを使用することができ、あなたのLinuxボックスに60分以上動作しているプロセスのための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に名前を付けると仮定すると、1行に1つの
、あなたはcronジョブを使用して、すべての60分、それを実行することができます。
0 * * * * /bin/bash /path_to/60min.sh
このcronジョブは60分ごと(または毎時)あなたの
60min.shスクリプトを実行します
誤ってシステムプロセスを殺すかもしれないし、あなたがする必要がありますので、ご使用のシステムが不安定になったり使用できなくなる場合がありますのでご注意くださいリブート。
特定のLinuxユーザーを使用して別のプロセスを実行する場合は、そのユーザーにしか知らず、ユーザールートではないプロセスを検索することをお勧めします。
あなたがこれまでに試したことを投稿し、良い質問をする方法を見てください:[ask] –