cronが実行されていない場合、または私のサーバーのcrontabに特定のcronjobが設定されていない場合は、警告を表示したいと思います。
phpで確認できますか?
ベストアンサー1
出力を解析して、特定crontab -l
のcrontabエントリが存在するかどうかを確認できます。実行中かどうかについては、cron
コマンド出力を解析して実行中かどうかをps -eaf
確認できます。crond
$ ps -eaf|grep [c]rond
root 1705 1 0 May27 ? 00:00:03 crond
出力はcrontab -l
次のとおりです。
$ crontab -l
0 12 * * * ls
注:以下を使用できます。system()
機能PHPでコマンドラインツールを呼び出すexec()
。
編集#1
あなたのコメントに応じて、PHPで次のことができます。私のスクリプトcronstatus.php
:
#!/usr/bin/php
<?php
exec("PATH=/usr/sbin:/usr/bin:/sbin:/bin; service crond status", $out, $ret);
print $ret . "\n";
?>
実行例
$ sudo service crond stop
Stopping crond: [ OK ]
$ ./cronstatus.php
3
$ sudo service crond start
Starting crond: [ OK ]
$ ./cronstatus.php
0
この関数は、exec
コマンドの出力を変数として返すことができる$out
だけでなく、で実行したコマンドによって返された状態結果も返すことができます$ret
。