at
このフラグを使用してスクリプトを実行するタスクを作成しました-f
。このスクリプトはTomcatを再起動します。仕事はFeb 21 18:00:00 2022
昨日行われる予定でした。当時、Tomcatが再起動されたことを確認しました。ただし、今日実行すると、次の結果atq
が表示されます。
3 Mon Feb 21 18:00:00 2022 = alexander
atq
仕事だけがリストされていることがわかっていますpending
。昨日の仕事がリストに表示されるのはなぜですか?
修正する:
スクリプトを確認したところ、tail
最終的に終了しない内容が含まれています。これは決してやめられない職業につながる可能性があります。出力は.にありますが、/var/spool/at/spool/a0000301a27604
ファイルの最後の変更時刻はです2022-02-21 23:40:33.534191768
。私はこれが尾の最後の出力が到着する場所であることを発見しました。まだ実行中のジョブのプロセスIDを取得するには?
答え1
ご質問の最新版は「まだ実行中のジョブのプロセスIDを取得するには?」
pgrep atd
525
pstree -p 525
atd(525)───atd(6729)───sh(6738)───sleep(6739)
または、両方のコマンドを安全に組み合わせてください。
pgrep atd | xargs -n1 -r pstree -p