Kesinlikle çocuk sürecini izleyebilirsiniz:
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} else if ($pid) {
// we are the parent
pcntl_waitpid($pid, $status, WUNTRACED); //Protect against Zombie children
if (pcntl_wifexited($status)) {
echo "Child exited normally";
} else if (pcntl_wifstopped($status)) {
echo "Signal: ", pcntl_wstopsig($status), " caused this child to stop.";
} else if (pcntl_wifsignaled($status)) {
echo "Signal: ",pcntl_wtermsig($status)," caused this child to exit with return code: ", pcntl_wexitstatus($status);
}
} else {
pcntl_exec("/path/to/php/script");
echo "Could not Execute...";
}
- durum kodu normal bir çıkışı temsil ediyorsa Çekler - () pcntl_wifstopped
- pcntl_wifstopped () - Çocuk sürecin durmuş olup olmadığını denetler
- pcntl_wifsignaled () - Durum kodunun bir sinyal sebebiyle bir fesih temsil olmadığını denetler
- pcntl_wexitstatus () - Bir sonlandırılmış çocuğun dönüş kodunu döndürür
- pcntl_wtermsig () - Çocuk sonlanmasına sebep olan sinyali döndürür
- pcntl_wstopsig () - Çocuk durdurmak için neden sinyali döndürür
EDIT:
Ebeveyn ve çocuk süreç arasındaki mesajlaşma ile ilgili açıklığa kavuşturmak için; kesinlikle süreçleri genelinde İstisnalar yakalamak olamaz. Bildiğim kadarıyla mesajlaşma, sadece PCNTL kütüphane kullanma gibi siz de sinyalleri ve çıkış kodlarını işlemek sınırlıdır.
Tam olarak ne yapıyorsun, bilmeden. Diğer çeşitli seçenekler var. Onlar muhtemelen ihtiyaçlarınızı karşılamak gibi ben, şu asenkron mesajlaşma çözümlerinden birini öneririm.
File based
Çocuğunuz süreçler ebeveyn tarafından boynuzsuz olacak bir dosyaya, mesaj yazabilirsiniz.
Memcache based
Yukarıdaki ile aynı, ancak iletişim aracı olarak memcached kullanarak.
Database based
Yukarıdaki ile aynı, ancak iletişim ortamı olarak bir db tablo kullanarak.
PHP's semaphore/IPC library
http://us3.php.net/manual/en/book.sem.php
Bu süreçler arasında iletişim kurmak için msg_send gibi yöntemler () ve msg_receive () kullanmanızı sağlar.
Ben bunlardan birini aradığınız çözümü sağlayacaktır eminim. Bu yöntemlerden herhangi birini kullanmak için nasıl özelliklerini içine gidiyor, ama bu sorunun kapsamı dışındadır muhtemelen, ama sen kullanmayı tercih hangisi yöntem ile yardıma ihtiyacınız varsa, yeni bir soru sormak için çekinmeyin.