リモート Amazon EC2 インスタンスで毎時間プログラムを実行するように Cron ジョブをスケジュールします。プログラムを実行するのに約55分かかり、プログラムが起動して停止したときに私に電子メールを送信します。
いつもうまくいきましたが、最近のプログラムは突然長時間かかり始めました(「終了Eメール」はスタートEメールから55分以上後に到着します)。これは同時に複数のプロセスを実行できることを意味します。現在実行中のすべてのプロセスを調べることでこれを確認したかったのですが、何らかの理由で「ps」と入力すると、bashとpsコマンド自体の2つのプロセスのみが表示されます。
プロセスがpsに表示されない理由をご存知ですか?どうやって見つけることができますか? SSH経由でAmazon EC2インスタンスに再接続しました。これが表示されるプロセスに影響を与えるかどうかはわかりません。
とても感謝しています!
答え1
バックグラウンドで開始されたプロセスを含むすべてのプロセスを表示するには、いくつかのフラグを使用する必要があります(root
たとえば、プロセス名ps aux
とともに)。grep
-a
:自分のプロセスだけでなく、他のユーザープロセスに関する情報も表示します。-u
:指定したユーザー名に属するプロセスを表示します。
追加man ps
情報。
答え2
他のユーザーの提案に応じて、psコマンドに詳細を追加する必要があります。私のために働いたことは次のとおりです。
ps -eo pid,comm,cmd,start,etime
これはすべてのプロセスを表示し(-e)、私が指定した情報(-o)を提供します。タスクを終了できるように、プロセスID(pid)、コマンド(comm) - つまり、Python、bashなど、cmd(完了)プログラムパス)、開始時間、経過時間。