Cara daftar layanan / daemon dimulai saat boot _ dan_ periksa urutan pemuatannya

32

Saya ingin memastikan dalam layanan apa urutan dimulai selama proses boot di sistem berbasis Debian (khususnya Squian Debian).

Terima kasih sebelumnya.

pengguna155872
sumber

Jawaban:

37

Pendeknya:

ls /etc/rc*.d

Ini menunjukkan kepada Anda apa yang dimulai pada runlevel mana, dan dalam setiap level urutannya ditentukan oleh angka setelah huruf (K adalah Kill, S adalah start).

Anda dapat mengkonfigurasi apa yang dimulai pada setiap runlevel dengan sysv-rc-conf, yang dapat diinstal dengan apt.

misalnya pada apache2 sistem saya disinkronkan di rc5.d sebagai "S20apache2". Tautan dalam direktori yang sama dengan S19 akan dimulai sebelum itu, sesuatu dengan S21 akan mulai setelah itu.

Bacaan lebih lanjut:

Alex Forbes
sumber
Terima kasih banyak, tetapi saya perlu memastikan bahwa misalnya cabai dimulai sebelum bind9 tetapi keduanya memiliki awalan S21. Saya telah mengedit bagian / etc / init / files yang disyaratkan-Start: dan Required-Stop: dan saya telah menjalankan pembaruan-rc.d untuknya. Ada ide apa yang salah?
user155872
Anda mungkin ingin insserv daripada memperbarui-rc.d. Apakah Chili aplikasi yang dipesan lebih dahulu atau dalam repo Debian? Jika itu adalah paket Debian yang dibuat dengan benar, Anda tidak perlu mengedit skrip initnya, tetapi jika itu dipesan lebih dahulu coba X-Start-Before daripada Diperlukan-Start (dan kemudian aktifkan dengan insserv). Tautan: wiki.debian.org/LSBInitScripts
Alex Forbes
Oke terima kasih. Saya telah belajar tentang insserv dan satu hal lagi: "tanda dolar, karena itu adalah fasilitas virtual yang sudah ditentukan sebelumnya. Jika tidak, nama skrip boot System V, ditemukan di /etc/init.d/, harus digunakan, meskipun tanpa dolar menandatangani atau mungkin ekstensi .sh. " Dan sekarang awalan sudah benar. Terima kasih :)
user155872
19

Apakah utilitas rcconf dan sysv-rc-conf membantu?

# aptitude install rcconf sysv-rc-conf

Setelah itu Anda dapat menjalankannya dengan mengetik rcconfatau sysv-rc-conf.

rcconf sysv-rc-conf

Daniel Sokolowski
sumber
9

Anda dapat mendaftar semua layanan dan statusnya dengan perintah sederhana ini:

service --status-all

Dari manual:

service --status-all menjalankan semua skrip init, dalam urutan abjad, dengan perintah status . Statusnya adalah [+] untuk menjalankan layanan, [-] untuk layanan yang dihentikan dan [? ] untuk layanan tanpa perintah 'status'. Opsi ini hanya memanggil status untuk pekerjaan sysvinit; pekerjaan pemula dapat ditanyakan dengan cara yang sama dengan daftar initctl.

Junix
sumber
1
Saya tidak berpikir ini membahas bagian "urutan apa" dari pertanyaan.
kmarsh
2
dan ini juga tidak benar-benar tahu mana yang diaktifkan (mulai saat boot)
kiltek
Saya memiliki skrip yang muncul dalam perintah ini, tetapi mereka tidak memulai.
Burung hantu
4
for i in `find /etc/rc*.d -name S*`; do basename $i | sed -r 's/^S[0-9]+//'; done | sort | uniq

Sample output:

acpid
anacron
avahi-daemon
boa
bootlogd
bootlogs
bootmisc.sh
checkfs.sh
checkroot-bootclean.sh
checkroot.sh
cryptdisks
cryptdisks-early
dbus
delayed-services
hostname.sh
hwclock.sh
keyboard-setup
killprocs
kmod
lightdm
mountall-bootclean.sh
mountall.sh
mountdevsubfs.sh
mountkernfs.sh
mountnfs-bootclean.sh
mountnfs.sh
mtab.sh
pppd-dns
procps
qemu-kvm
rc.local
rmnologin
rsyslog
single
sleep
stop-bootlogd
stop-bootlogd-single
udev
udev-mtab
x11-common
Andrey
sumber
1

Pada Debian rcconf harus melakukan trik, hanya untuk mengkonfigurasi stop / start layanan yang sudah ada.

Saya menggunakannya sepanjang waktu di Debian Jessie dan Wheezy.

Exnor
sumber
Bisakah Anda jelaskan sedikit lebih banyak cara menggunakan alat yang telah Anda sebutkan?
womble