プログラムまたはスクリプトを実行し、後でそれを識別してまだ実行されていることを確認するにはどうすればよいですか?
例:私は約10時間バックグラウンドでPHPスクリプトを実行しています(さまざまなAPIなどから多くのデータを取得します)。私が走るときトップその過程を見ました。PHPまだ実行中です。しかし、同時に2番目のPHPスクリプトを実行するとどうなりますか?どちらが最初で、どちらが2番目であるかを識別する方法は?
数時間後でもスクリプトが実行され続けるかどうかを知りたいので必要です。
修正する
次のコマンドを使用してPHPプロセスを識別し、まだ実行中であることを確認します。
ps cax | grep "php$" | grep -o '^[ ]*[0-9]*'
PHPで使用して0より大きいことを$pid = exec("..");
確認してください。$pid
0 より大きくないと実行されていません。それ以外の場合は実行中であり、プロセスIDを持っています。
ベストアンサー1
直接実行スクリプトの使用シェルボーン(#!/usr/bin/php
最初の行にスクリプトを実行可能としてマークします)。ps ax
出力にスクリプト名が表示されます(例:/usr/bin/php /path/to/your/script
。
あるいは、呼び出しスクリプトのPIDを別のファイルに保存することもできます。スクリプトが実行されていることを確認するには、そのPIDを持つプロセスが存在することを確認してください。 PIDは再利用されるため、プロセスが一致していることをcmdline
確認する必要があるかもしれません。exec
説明どおり@Blayerの答え繰り返しますが、どちらも100%信頼できません。