Ben bir komut satırında (aka CLI modu dahil hiçbir web sunucusu) başlatılan bir PHP komut dosyası var.
Bu komut genellikle bir kaç dakika sonra çıkarken, bir süre çalışacak bir komut başlatacak. Ama zaman zaman, bu komut nedeniyle çeşitli konularda saatlerce çalışacak ve ben yapabilirim en iyi onu öldürmek ve yeniden başlatmadan önce bir süre bekleyin.
Ben vurgulamak istiyorum iki şey:
- Ben komuta içindeki kod hiçbir kontrole sahip, ve arıza tespiti geliştirmek olamaz.
- Bu önemli bir görev değil, ve bu şekilde çalışma için mükemmel ok.
Söyleniyor, ben komut daha N saniye boyunca çalışan olup olmadığını ben çocuk süreci öldürür böylece, benim kodunda şeyleri iyileştirmek istiyoruz. Ama yine de iyi çalışır zaman, komut dönüş kodu almak istiyorum.
Pseudo-kod gibi bir şey bu olmalı:
Launch command
While command is running
{
If the command is done running
{
echo return code
}
else
{
If the command has been running for more than N seconds
{
Kill the child process
}
}
}
Nasıl PHP uygulamak istiyorsunuz?
Teşekkür ederiz!
Solution : I ended up using the SIG_ALERT signal. More info on the signals handling and the pcntl lib in the pages provided by Gordon his post de. Strong>