Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memastikan Proses Anak Bertahan Penamatan Proses Ibu Bapa dalam systemd?
Apabila melaksanakan program yang melahirkan proses anak yang berjalan lama, adalah penting untuk memastikan proses anak kekal aktif walaupun selepas proses utama proses dimulakan semula atau ditamatkan. Menggunakan baris arahan, ini boleh dicapai dengan menetapkan bendera Setsid objek exec.Command kepada benar. Ini memisahkan proses anak daripada sesi induk proses dan kumpulan proses, membolehkannya terus berjalan secara bebas.
Walau bagaimanapun, apabila melancarkan proses utama melalui systemd, tetapan KillMode lalai dalam fail konfigurasi perkhidmatan mungkin mengganggu proses detasmen. Secara lalai, KillMode systemd ditetapkan kepada kumpulan kawalan, yang membayangkan bahawa semua proses dalam kumpulan kawalan unit ditamatkan apabila proses utama berhenti.
Untuk menyelesaikan isu ini dan membenarkan proses anak bertahan dalam proses utama penamatan, tetapan KillMode dalam fail perkhidmatan systemd perlu diubah suai.
Untuk menukar tetapan KillMode, edit fail perkhidmatan systemd yang terletak di /etc/systemd/system/exectest.service dan tambah baris berikut dalam bahagian [Perkhidmatan]:
KillMode=process
Menetapkan KillMode untuk memproses memastikan bahawa hanya proses utama itu sendiri dimatikan apabila unit dihentikan. Ini memastikan proses kanak-kanak kekal tidak terjejas dan terus berjalan secara bebas.
Selepas membuat perubahan, simpan fail dan mulakan semula perkhidmatan systemd menggunakan arahan berikut:
sudo systemctl daemon-reload sudo systemctl restart exectest
Untuk mengesahkan bahawa proses anak masih hidup dalam penamatan proses induk, gunakan yang berikut langkah:
Atas ialah kandungan terperinci Bagaimana untuk Memastikan Proses Anak Bertahan Penamatan Proses Ibu Bapa dalam systemd?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!