Saya menggunakan PHP dan pcntl_fork (). Idenya adalah bahwa orang tua memotong dan berhenti untuk menyelesaikan anak; anak melakukan tugas kemudian berakhir; orang tua dapat memeriksa kode pengembalian untuk tugas atau status proses anak dan melanjutkan sesuai itu.
(Tugas diisolasi dari induk utama dengan forking, untuk memastikan orang tua dapat membersihkan dengan baik jika tugas tersebut mengenai masalah runtime yang tidak dapat diperbaiki, seperti file "termasuk" yang rusak atau pustaka kunci yang hilang, maka dari fork, pada dasarnya saya mengimplementasikan isolasi proses sederhana untuk kejadian yang mudah-mudahan jarang terjadi, kondisi yang tidak dapat diperbaiki dapat menyebabkan masalah)
Jadi masalahnya adalah bahwa setelah pcntl_fork () kedua proses berbagi deskriptor I / O STDXXX yang sama, sehingga segera setelah anak menyelesaikan tugasnya, I / O yang digunakan tertutup seperti biasa, dan mereka ditutup untuk orangtua sebagai baik, artinya hal-hal seperti echo () yang digunakan untuk melanjutkan interaksi oleh orang tua, tiba-tiba berhenti bekerja juga.
Saya mengikuti tip di php.net dan menggunakan posix kill -9 pada anak alih-alih keluar, sehingga anak berakhir tanpa menutup IO yang dibagikan dengan (dan dibutuhkan oleh) induknya, tetapi apakah ada cara yang lebih rapi untuk melakukan ini ?
Terima kasih!