cronjobを作成しましたが、長い間実行されていましたが、今は停止する方法がわかりません。
答え1
残念ながら、このページとGoogleの結果に記載されている他のページでは、保留中のクローン操作を処理する方法についてpstreeに言及している人はいません。
pstree
ツリーのクローン部分を見る
答え2
シェルスクリプトラッパーがある場合は、cronjobが十分に長く実行されている場合はタイムアウトする必要があると思います。 cronjobの呼び出し中にタイムアウトが発生した場合、ラッパーはSIGHUPまたはSIGALARMを送信する必要があります。このような:
50 * * * * /usr/bin/my_cron_wrapper_timeout -t 1 /usr/bin/my_command_cron_job_to_run
このcron_wrapper_timeoutは、デフォルトで-tスイッチオプションを使用して1時間経過後にタイムアウト信号を送信するようになっています。その後、kill -HUP
cronjobにシグナルを送信する必要があり、プロセスも収集され、それ自体が終了/終了します。
または、ALARMシグナルタイムアウトを処理してスムーズに消える前にクリーンアップするように、cronjob自体にコードを書く必要があります。
編集する
これが私の言うことです:ウォッチングhttp://chihungchan.blogspot.com/2011/03/no-more-hanging-jobs-in-cron.html
答え3
crontabが実行を開始したプロセスを停止する必要があります。
#kill -HUP PID (PID: Process ID is the process running)
PIDが実行中のプロセス(および追加情報)にどのように関連するかを確認するには、top
コマンドを使用して列の順序を変更し、<
次を使用します。>
また、ps -ax|grep [your_process_file]
選択した名前でフィルタ処理された実行中のプロセスを一覧表示します。
-座る=壊す
答え4
まず、このコマンドを使用してワーカープロセスを確認します。
ps -o pid,sess,cmd afx | egrep "( |/)cron( -f)?$"
このコマンドの出力は次のとおりです。
599 599 cron
4288 599 \_ CRON
次に、このコマンドでプロセスを終了します。
pkill -s 4288