pengembangan-web-mp.com

Nonaktifkan layanan dari mulai dari semua runlevel?

Saya memiliki layanan foo yang saat ini dimulai pada runlevel dan di atasnya. Bagaimana saya bisa menghentikannya, tanpa menggunakan update-rc.d foo stop 3 ., yang (jika saya memahaminya dengan benar) akan mematikan layanan pada setiap perubahan runlevel.

(mis., jika saya berada di runlevel 1 dan mengaktifkan foo, maka ketika saya berubah menjadi runlevel itu akan dinonaktifkan, bukan?)

Menjalankan Debian GNU/Linux Lenny.

61
lfaraone

Istilah "stop" tidak mencegah daemon dari mulai tetapi menutupnya saat memasuki runlevel yang ditentukan.

Jika Anda hanya ingin menghapus service/daemon dari runlevel tunggal, update-rc.d seperti yang ditunjukkan bei freiheit atau cukup hapus symlink dari /etc/rcX.d/, di mana X adalah runlevel Anda. Jika Anda tidak ingin layanan mulai secara otomatis, update-rc.d -f foo remove akan melakukan triknya.

58
PEra

Konfigurasi Aplikasi Startup Linux dengan sysv-rc-conf :

apt-get install sysv-rc-conf

Seperti yang orang lain tunjukkan, ini juga pdate-rc.d untuk baris cmd.

Misalnya, jalankan

update-rc.d Apache2 disable

untuk menonaktifkan Apache2 dari semua level run.

56
Not Now

Pendek:

Tidak ada cara yang dapat diandalkan untuk melakukan ini dengan cepat.

Panjang:

Debian saat ini (Debian tidak stabil pada 2012-06-01) saat ini tidak memiliki cara pendek yang dapat diandalkan untuk menonaktifkan layanan/daemon secara konsisten. - Karena pemutakhiran paket daemon tanpa syarat menjalankan "/etc/init.d/package restart", menonaktifkannya untuk runlevel ini atau tidak.

Untuk memastikan daemon tidak dimulai, Anda dapat:

  • uninstall itu
  • lakukan pengalihan lokal skrip /etc/init.d/xyz (dengan cara ini, tidak ada alat yang akan menemukannya)
  • menggunakan/menyalahgunakan file konfigurasi dari paket yang sesuai untuk memancing keluar lebih awal dari skrip itu (mis. letakkan "keluar" di awal/etc/default/xyz jika itu bersumber dari skrip init)
  • lihat di skrip init untuk cara "resmi" yang telah ditentukan untuk tidak memulai daemon itu

Ada/sedang (?) Beberapa langkah init-policy-something untuk skrip init di Debian, yang seharusnya mengisi fungsi yang hilang ini. - Saya mencoba menggunakannya, merasa rumit, menemukan bug, dan tidak pernah menyentuhnya lagi.

Memperbarui:

Beralih ke "systemd", sebuah alternatif untuk "initd". Paket debian ada, dan Anda dapat menonaktifkan layanan dengan sesuatu seperti ini:

cd /etc/systemd/system
ln -s /dev/null xyz.service
15
Robert Siemer

Jalankan perintah ini

apt-get install rcconf

Setelah diinstal, jalankan rcconf di SSH dan Anda akan menerima kotak dialog yang menampilkan semua layanan yang diatur untuk dijalankan saat boot. Pilih yang dengan menekan Spasi untuk menonaktifkan/mengaktifkan yang khusus dan Anda selesai, klik saja pada Ok dan layanan itu tidak mau memulai lagi pada boot berikutnya. Menggunakan ini selama bertahun-tahun. Sangat alat praktis untuk pengguna Debian/Ubuntu seperti saya.

5
Mark Levinsky

Saya pikir ini akan melakukan pekerjaan: insserv -r foo

3
user38551

Saya bingung apa yang ingin Anda capai.

Level lari apa yang ingin Anda jalankan?

Jika Anda selalu ingin itu berjalan, gunakan update-rc.d foo defaults; yang akan menghentikannya dalam 0, 1 dan 6, sambil membiarkannya tetap berjalan dalam 2, 3, 4 dan 5. (1 seharusnya tidak menjalankan apa pun kecuali Shell, 0 dan 6 berhenti dan reboot)

Jika Anda ingin menentukan dengan tepat level run yang akan dijalankan:

update-rc.d foo stop 0 1 6 3 . start 2 4 5 .
2
freiheit

Mulai gunakan insserv dari Debian7

Keluarkan semua layanan dan itu menjalankan informasi tingkat

insserv --showall

Hapus skrip yang terdaftar dari semua runlevel

insserv --remove [specify_script]
1
cocoa

Mengapa Anda tidak mencadangkan skrip startup di tempat lain dan menghapusnya di /etc/init.d/? Jika pembaruan-rc.d tidak berfungsi.

0
Kosaka Honoka

Bootup Manager Ubuntu adalah jenis sysv-rc-conf light , versi GUI yang lebih ramah, dan banyak orang yang membaca utas ini akan menghargai itu.

http://www.marzocca.net/linux/bum.html

0
the_guv

Pada sistem berbasis Red Hat yang bisa Anda gunakan

chkconfig httpd off
chkconfig httpd --del

untuk menghapus server dari runlevels

pada sistem berbasis debian semua layanan seharusnya dimulai oleh file yang ditemukan di direktori /etc/rc?.d/, file-file ini kemudian memiliki tautan simbolis ke file yang sesuai di direktori /etc/init.d/. Jika Anda menginginkan layanan tidak dimulai secara default maka Anda dapat mengganti nama/menghapusnya dari direktori /etc/rc?.d dan perubahan Anda akan dipertahankan pada peningkatan paket selama salah satu tautan awal masih muncul di salah satu direktori lainnya (3,4 dan 5). Atau Anda dapat menggunakan perintah update-rc.d untuk mengubah tautan dan jika Anda ingin memulai layanan setelahnya, Anda dapat menggunakan /etc/init.d/service_name start jika Anda membiarkan awal dari akhir itu akan memberi Anda opsi yang dapat digunakan seperti stop, restart, reload ...

Saya pikir Anda dapat menggunakan sysv-rc-conf untuk menonaktifkannya.

0
Rodent43
Sudo update-rc.d SERVICE disable

Jika Anda ingin menentukan level run.

Sudo update-rc.d SERVICE disable|enable [S|2|3|4|5]

Ingatlah untuk mengubah layanan ke nama program.

Sudo service SERVICE restart
0
Eddie