Como verificar se uma tarefa cron está em execução ou não?

0

Eu adicionei o seguinte comando em crontab -e :

15 * * * * php /home/rizwan/PHP-workspace/mgstore/testcron.php

Eu preciso executar testcron.php a cada 15 minutos; para fins de teste, usei o seguinte código PHP em testcron.php :

<?php 
echo "test";
    
por Rizwan 21.07.2015 / 12:06

3 respostas

1
15 * * * * /usr/bin/php /home/rizwan/PHP-workspace/mgstore/testcron.php >> /home/rizwan/cron.out 

isso estava funcionando .mas tenho um script php, para adicionar clientes do magento ao ERP, quando executo script manualmente, ele pede autorização, depois de aceitar cria clientes no ERP do magento, eu preciso sempre que adiciono cliente em magento depois de 5 ou 10 minutos este script deve rodar e adicionar o cliente ao ERP. como isso pode ser feito ?, Se alguém tiver alguma ideia, por favor ajude?

    
por Rizwan 23.07.2015 / 13:53
0

Primeiro você tem que ter certeza de executar o executável pelo caminho completo. você pode obter o caminho usando o comando which

$ which php
/usr/bin/php

Agora a entrada no crontab deve ser:

15 * * * * /usr/bin/php /home/rizwan/PHP-workspace/mgstore/testcron.php

Agora Para verificar a saída, você pode usar o truque de redirecionamento, portanto, redirecione a saída para algum arquivo e, em seguida, você pode verificar o arquivo para ver o resultado. Então a entrada seria:

15 * * * * /usr/bin/php /home/rizwan/PHP-workspace/mgstore/testcron.php >> /home/rizwan/cron.out

Agora você pode verificar o arquivo em sua casa chamado cron.out e ver se o seu cron é executado ou não.

    
por Maythux 21.07.2015 / 12:25
0

No PHP você pode usar o operador backtick ou a função shell_exec() para executar um comando no shell padrão do sistema; você pode executar pgrep 'php /home/rizwan/PHP-workspace/mgstore/testcron.php' e avaliar seu código de retorno; ou isso:

<?php
    if(!($PID = 'pgrep 'php /home/rizwan/PHP-workspace/mgstore/testcron.php''))
        echo 'Process is running with PID ' . $PID . '.';
?>

Ou isto:

<?php
    if(!($PID = shell_exec("pgrep 'php /home/rizwan/PHP-workspace/mgstore/testcron.php'")))
        echo 'Process is running with PID ' . $PID . '.';
?>
    
por kos 21.07.2015 / 12:32