Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Memastikan Proses Kanak-Kanak Berjalan Selepas Perkhidmatan Systemd Berhenti?
Sistem: Mengeluarkan Proses Anak
Apabila memulakan proses yang berpanjangan dari terminal, anda mungkin menginginkan proses anak berterusan walaupun jika proses utama dimulakan semula atau ditamatkan. Walaupun ini boleh dilaksanakan dengan pelaksanaan manual, ia menjadi bermasalah apabila menjalankan proses utama sebagai perkhidmatan systemd.
Dalam systemd, kaedah penamatan proses anak lalai adalah melalui kumpulan kawalan, yang mengakibatkan semua proses anak ditamatkan selepas penamatan proses induk. Untuk mengelakkan ini, anda boleh menentukan KillMode=process dalam konfigurasi perkhidmatan.
Berikut ialah cara untuk melaksanakannya untuk contoh yang diberikan:
[Unit] Description=ExecTest [Service] Type=simple ExecStart=/home/snowm/src/exectest/exectest User=snowm KillMode=process [Install] WantedBy=multi-user.target
Dengan menetapkan KillMode=process, anda mengarahkan systemd untuk menamatkan hanya proses utama apabila menamatkan perkhidmatan. Ini membolehkan proses kanak-kanak terus berjalan walaupun selepas proses induk telah dihentikan.
Sila ambil perhatian bahawa pendekatan ini hanya memberi kesan kepada proses kanak-kanak yang dibuat semasa pelaksanaan proses utama. Proses yang dibuat sebelum ini masih akan ditamatkan apabila proses utama tamat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Proses Kanak-Kanak Berjalan Selepas Perkhidmatan Systemd Berhenti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!