Di Ubuntu,
- Apakah ada perintah untuk menampilkan daftar semua layanan autostart?
- Apakah ada perintah untuk memeriksa apakah suatu layanan di-autostart pada saat boot atau tidak?
Saya melakukan Google dan IRC. Saya tidak dapat menemukan jawabannya. Mungkin tidak ada perintah seperti itu di Ubuntu. Pada awalnya, saya pikir semua layanan autostarted akan berada di bawah /etc/rc2.d/
, tetapi saya salah tentang itu. Beberapa yang dikonfigurasi hanya di bawah /etc/init/*.conf
. Lalu saya mencoba chkconfig
alat (menginstalnya secara manual), itu tidak berfungsi sepanjang waktu. Sebagai contoh, ini memberikan hasil yang salah dari mongodb
mana autostarted berasal /etc/init/mongodb.conf
.
service --status-all
dan initctl list
hanya bisa memberi tahu status layanan saat ini alih-alih status autostart. update-rc.d
adalah perintah untuk mengubah status autostart alih-alih menunjukkan status.
Jika tidak ada jawaban untuk pertanyaan saya, saya hanya ingin tahu mengapa begitu sulit untuk memeriksa layanan autostart di Ubuntu.
chkconfig --list
akan bekerja dengan benar?on
berarti bahwa layanan sedang berjalan di runlevel itu, dan layanan itu akan secara otomatis mulai ketika sistem boot.ls /etc/rc?.d
?Jawaban:
Ubuntu menggunakan
Upstart
bukaninit
sistem tradisional . Pemula lebih kuat daripada init, tetapi sedikit lebih rumit daripadainit
.Pemula, sebaliknya, berbasis acara. "Peristiwa" dapat berupa sesuatu seperti "booting" ... atau bisa lebih spesifik, seperti "jaringan siap digunakan sekarang". Anda dapat menentukan skrip mana yang bergantung pada acara mana. Apa pun yang tidak menunggu suatu acara dapat berjalan setiap kali ada CPU yang tersedia.
Sistem berbasis peristiwa ini memiliki keuntungan lain: Anda secara teoritis dapat menggunakannya bahkan setelah sistem aktif dan berjalan. Pemula akhirnya dijadwalkan untuk mengambil alih tugas-tugas seperti atau memasukkan perangkat eksternal seperti thumb drive (saat ini ditangani oleh udev dan hal), atau menjalankan program pada waktu tertentu (saat ini ditangani oleh cron).
Seperti yang harus Anda ketahui sekarang, daemon mati (yang tidak berjalan saat startup) mungkin hidup dan dimulai karena suatu peristiwa.
Ubuntu memiliki / etc / init, untuk Upstart, dan /etc/init.d, untuk file SysV lama. Beberapa file di dalamnya adalah skrip SysV Init biasa yang belum dimigrasi. Tetapi beberapa layanan yang telah bermigrasi memelihara tautan dari /etc/init.d ke / lib / init / upstart-job. Jika Anda menjalankan salah satu dari itu, itu berhasil, tetapi mencetak peringatan terlebih dahulu:
Pada mesin pemula, init berasal dari pemula. Alih-alih menjalankan skrip rc master yang memanggil skrip untuk runlevel tertentu, init Upstart mengambil pekerjaan dari direktori pekerjaannya.
Sekarang kita tahu tidak ada cara sederhana untuk membuat daftar daemon autostart, Anda harus membuat daftar semua daemon dan memeriksanya satu per satu. Daemon dapat dimulai oleh
init
atau olehupstart
atau bahkan oleh acara selanjutnya. Cara paling sederhana untuk mendapatkan daftar ini adalah menjalankan perintah ini di shell:Outputnya terlihat seperti ini:
Beberapa item seperti yang pertama sangat sederhana,
hostname
dimulai saat startup. Tapi barang-barang lain mungkin terlihat lebih rumit. (Tapi untungnya bisa dibaca manusia :-))sumber
Sebenarnya, semua layanan hanya hadir di /etc/init.d:
Satu hal lagi, semua layanan hadir di bawah
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
juga, tetapi itu adalah tautan simbolis ke/etc/init.d
saja.Lihat di sini ini isi
rc1.d
direktori:Di sini Anda dapat mengamati tautan simbolis ke init.d (K15pulseaudio -> ../init.d/pulseaudio).
Tetapi di sini setiap layanan terhubung dengan init.d, bukan? Tetapi setiap layanan tidak akan dimulai; alasannya adalah dua skrip.
Yang pertama adalah skrip S (S30killprocs) ---> start
Yang kedua adalah skrip k (K15pulseaudio) ---> kill
Semua layanan skrip K mematikan layanan dan semua layanan skrip S memulai layanan untuk runlevel itu.
Secara singkat
S70dns-clean -> ../init.d/dns-clean
memulaidns-clean
layanan di runlevel 1.K15pulseaudio -> ../init.d/pulseaudio
membunuhpulseaudio
layanan di runlevel 1.sumber
Anda dapat menginstal sysv-rc-conf yang merupakan program ncurses untuk mengkonfigurasi / menampilkan level rc secara grafis.
sumber
Lihat di sini: update-rc-d-cheat-sheet
Tidak ada, saya tahu (yang tidak berarti apa-apa;), tetapi Anda dapat mulai membaca di sini: forum askubuntu - ketergantungan layanan
sumber