Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Memastikan Proses Anak Bertahan Penamatan Proses Ibu Bapa dalam systemd?

Bagaimana untuk Memastikan Proses Anak Bertahan Penamatan Proses Ibu Bapa dalam systemd?

Susan Sarandon
Lepaskan: 2024-12-25 08:24:10
asal
624 orang telah melayarinya

How to Ensure Child Processes Survive Parent Process Termination in systemd?

Melepaskan Proses Anak 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.

Mengubah suai Perkhidmatan Systemd Fail

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
Salin selepas log masuk

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
Salin selepas log masuk

Mengesahkan Kemandirian Proses Kanak-kanak

Untuk mengesahkan bahawa proses anak masih hidup dalam penamatan proses induk, gunakan yang berikut langkah:

  1. Semak proses berjalan menggunakan ps -ef | grep exectest: Ini sepatutnya menunjukkan proses utama (exectest) berjalan di bawah pengguna systemd dan proses anak (exectest child) masih aktif.
  2. Bunuh proses induk: Hantar isyarat kepada proses utama (cth., sudo bunuh -INT ) untuk menamatkannya.
  3. Sahkan kemandirian proses anak: Jalankan semula ps -ef | grep exectest untuk menyemak sama ada proses anak masih berjalan. Jika proses anak kekal aktif, maka pengubahsuaian pada fail perkhidmatan telah berjaya.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan