Cara menghentikan daemon memulai boot-up di Debian

16

Ada beberapa daemon yang saya nonaktifkan mulai saat boot-up. Sebagai contoh, saya menggunakan yang berikut ini:

 sudo update-rc.d -f postgresql remove

Saya bahkan tidak yakin apakah perintah itu benar dan saya tidak ingat dari mana saya mendapatkannya.

Ngomong-ngomong, setiap kali saya memutakhirkan postgresql, pengaturannya hilang (mis. Daemon dimulai saat reboot).

tepang
sumber
1
Di Debian dengan SysVinit, saya suka file-rc. Alih-alih mengelola symlink, saya mengelola file teks dengan konfigurasi runlevel saya.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

22

update-rc.dawalnya digunakan oleh skrip peningkatan paket. removedipanggil paket uninstall dan menghapus semua tautan, defaultsdisebut paket install, enableatau disabledapat digunakan tergantung pada debconf dan berguna untuk sysadmin. Pembersihan removesebenarnya tidak berguna untuk menonaktifkan layanan. Dari halaman manual:

Kesalahan administrasi sistem yang umum adalah menghapus tautan dengan anggapan bahwa ini akan "menonaktifkan" layanan, yaitu bahwa ini akan mencegah layanan dari mulai. Namun, jika semua tautan telah dihapus maka pada saat paket ditingkatkan, skrip postinst paket akan menjalankan pembaruan-rc.d lagi dan ini akan menginstal ulang tautan di lokasi default pabrik mereka. Cara yang benar untuk menonaktifkan layanan adalah dengan mengkonfigurasi layanan sebagaimana dihentikan di semua runlevel yang dijalankan secara default. Dalam sistem System V init ini berarti mengganti nama tautan simbolik layanan dari S ke K.

sudo update-rc.d postgresql disableakan melakukan apa yang Anda inginkan, karena ia menyimpan symlink rc.d tetapi dengan awalan K (dibunuh, dihentikan). Kembalikan dengan enable. Beberapa layanan mendukung dinonaktifkan dari /etc/defaults/$servicefile mereka , tetapi sayangnya ada pengecualian. Cara lain untuk menonaktifkan layanan adalah dengan chmod -x /etc/init.d/$servicefile, atau untuk memasukkan exit 0di bagian atasnya.

Tobu
sumber
6

Untuk memperjelas solusi terbaik, mirip dengan jawaban yang diberikan Tobu:

  1. Jangan gunakan update-rc.ddengan removeopsi.
  2. Sebagai gantinya, gunakan update-rc.ddengan disableopsi.

Contoh: update-rc.d postgresql disable


PLUS, Anda juga dapat menemukan (dan menonaktifkan) layanan lain yang lebih spesifik systemctl.

Contoh: systemctl disable pppd-dns.service

Arahkun
sumber
+1 untuk yang disarankan untuk tidak menggunakan opsi HAPUS
PYK
3

Tobu benar-benar tepat, tapi untuk kelengkapan ada alat untuk memberikan gambaran yang cerdas: sysv-rc-conf. Untuk salinan & tepuk:

apt-get install sysv-rc-conf

Menjalankan sysv-rc-confAnda akan melihat skrip mana yang dijalankan di mana runlevel. Anda dapat mengaktifkan / menonaktifkan layanan melalui spacedan keluar dengan q.

binfalse
sumber
2
Saya juga suka rcconf, itu dalam repo standar. Ingat meskipun tidak ada yang akan bekerja dengan pemula, yang merupakan default pada Ubuntu. Meskipun banyak barang masih menggunakan warisan init.
JM Becker