4

at現在、将来のジョブをスケジュールするために unix コマンドを使用しています。ただし、必要に応じてこれらのジョブを削除できるようにしたいと考えています。ジョブ作成直後にジョブ番号を取得する方法はありますか? 保留中のジョブのリストを表示できることはわかっていatqますが、ジョブを作成した直後に PHP コードでジョブ番号を取得できるようにしたいと考えています。コマンドを実行できますがatq、キュー内の最後のジョブを取得する前に別のジョブが作成された場合はどうなりますか? それから私は正しい仕事番号を持っていません。

簡単atに言えば、コマンドを使用せずにジョブ番号を取得できるコマンドでジョブを作成した後、何か方法はありますatqか?

たとえば、私のコードは次のとおりです。

exec('echo /usr/bin/php -f /home/site/public_html/test.php | sudo /usr/bin/at now');

私は現在、このphpexec()コードからジョブ番号を取得する方法を理解するために1つのコメントが提案したコマンド置換を調べています。

やってみると

var=$(echo /usr/bin/php -f /home/site/public_html/test.php | sudo /usr/bin/at now)

シェルでecho $var、空の行が表示されます。varなぜ出力を保持しないのですか?

4

2 に答える 2

0

試す:

exec('at now "php /home/site/public_html/test.php" 2>&1 | grep job | awk "{print $2}", $output);
var_dump($output);

ヘルプ:

https://superuser.com/questions/368328/have-the-at-command-return-the-job-id-of-the-task-just-submitted

于 2013-10-11T12:41:08.150 に答える