GNU/Linux >> Belajar Linux >  >> Linux

Tidak dapat melepaskan proses anak saat proses utama dimulai dari systemd

Solusinya adalah dengan menambahkan

KillMode=process

ke blok layanan. Nilai default adalah control-group yang berarti systemd membersihkan semua proses anak.

Dari man systemd.kill

KillMode =Menentukan bagaimana proses unit ini akan dimatikan. Satu dari grup kontrol, proses, campuran, tidak ada.

Jika diatur ke grup kontrol, semua proses yang tersisa di grup kontrol unit ini akan dimatikan saat unit berhenti (untuk layanan:setelah perintah stop dijalankan, seperti yang dikonfigurasi dengan ExecStop=). Jika diatur ke proses, hanya proses utama itu sendiri yang dimatikan. Jika diatur ke campuran, sinyal SIGTERM (lihat di bawah) dikirim ke proses utama sementara sinyal SIGKILL berikutnya (lihat di bawah) dikirim ke semua proses yang tersisa dari grup kontrol unit. Jika disetel ke none, tidak ada proses yang dimatikan. Dalam hal ini, hanya perintah stop yang akan dieksekusi pada unit stop, tetapi tidak ada proses yang dimatikan jika tidak. Proses yang tetap hidup setelah berhenti dibiarkan dalam grup kontrolnya dan grup kontrol terus ada setelah berhenti kecuali jika kosong.


Linux
  1. Proses anak menerima SIGINT orang tua

  2. Cara mendapatkan PID dari proses anak bercabang di skrip Shell

  3. Cara mendapatkan proses anak dari proses induk

  1. Bagaimana menghentikan layanan systemd

  2. Bisakah saya mem-boot Linux dari VHD?

  3. Apa yang harus dilakukan ketika Ctrl + C tidak dapat menghentikan proses?

  1. Apakah mungkin untuk menerapkan kode keluar tertentu saat menggunakan kill untuk menghentikan proses?

  2. Bagaimana saya bisa membaca input dari keyboard host saat terhubung melalui SSH?

  3. Bisakah saya mempercayai 127.0.0.1 secara membabi buta?