Você pode analisar a saída de crontab -l
para ver se uma determinada entrada crontab está presente ou não. Quanto a se cron
está em execução ou não, você pode analisar a saída de um comando ps -eaf
para ver se crond
está em execução ou não.
$ ps -eaf|grep [c]rond
root 1705 1 0 May27 ? 00:00:03 crond
A saída de crontab -l
seria algo assim:
$ crontab -l
0 12 * * * ls
NOTA: Você pode usar a system()
function no PHP para chamar ferramentas de linha de comando ou < href="http://php.net/manual/en/function.exec.php"> exec()
.
EDIT # 1
Com base no seu comentário, você pode fazer o seguinte no PHP. Meu script, cronstatus.php
:
#!/usr/bin/php
<?php
exec("PATH=/usr/sbin:/usr/bin:/sbin:/bin; service crond status", $out, $ret);
print $ret . "\n";
?>
exemplo de execução
$ sudo service crond stop
Stopping crond: [ OK ]
$ ./cronstatus.php
3
$ sudo service crond start
Starting crond: [ OK ]
$ ./cronstatus.php
0
A função exec
pode retornar a saída do comando para uma variável, $out
e os resultados do status retornados pelo comando executado em $ret
.