Apa itu Runlevel 'S' di Debian / Ubuntu untuk

8

Menurut Wikipedia , 'S' seharusnya merupakan runlevel standar: "Single-User Mode". Tetapi jika saya tidak salah, mode Single-User di Debian adalah Runlevel 1. Satu artikel Debian yang saya temukan mengklaim, bahwa 'S' adalah runlevel "yang digunakan sistem dalam perjalanannya ke runlevel lain". Menarik...

Sebenarnya, saya selalu mengabaikan runlevel ini sejauh ini, tapi hari ini saya bermain-main dengan Firestarter (ya, benar-benar, firewall pengguna akhir) hanya karena saya ingin tahu, aturan firewall mana yang akan dihasilkan. Tapi kemudian saya perhatikan, bahwa itu menciptakan kait startup di /etc/rcS.d, dan saya bertanya-tanya, apakah skrip firewall saya mungkin juga memilikinya?

Memperbarui

Sekarang saya bahkan lebih tertarik untuk mengetahui apa yang sebenarnya ada di Debian / Ubuntu , karena paket Shorewall (yang merupakan paket "Debianized" yang kuat) juga menciptakan (hanya!) Startup hook di rcS.d!

Chris Lercher
sumber

Jawaban:

3

Saya melihat runlevel dengan cara ini:

 S - true single user mode usually drops you into a minimal root shell
 1 - Administrative mode, you get a standard login request before access
 2 - Multi-user without TCP/IP networking -- could use serial ports for other logins
 3 - Multi-user with TCP/IP networking and text 
 4 - To be determined by the system owner
 5 - Multi-User with TCP/IP networking and graphic console 
 6 - reboot
 0 - shutdown and power down

Dengan demikian, firewall sangat diperlukan jika TCP / IP aktif dan berjalan dan yang umumnya terjadi hanya di Init State 3.

mdpc
sumber
1
Seluruh konsep runlevel ini adalah warisan dari masa lalu. Saat ini biasanya mode single user (untuk pemeliharaan) dan beberapa mode normal lainnya (seperti 2 atau 5 tergantung pada distro) digunakan. Saya tidak benar-benar melihat kasus penggunaan untuk hal lain.
cstamas
Sebenarnya lebih buruk lagi, distribusi terbaru menghilangkan semua run level (saat ini menjadi dukungan sebagai masalah warisan) dan pergi ke negara-negara dengan ketergantungan di bawahnya (lihat Fedora 15).
mdpc
3

Semua jawaban di atas tampaknya mengitari jawaban langsung untuk pertanyaan yang diajukan.

Dari semua yang saya dapat temukan, rcS.dskrip diimplementasikan seperti Ssingkatan dari " startup " bukan " single ".

Semuanya dijalankan saat boot. Jika Anda kemudian ingin menggunakan run level 1, skrip di rc1.djalankan (yang mungkin cukup kosong, mengingat semua pekerjaan yang baru saja kami lakukan di rcS)

Lebih penting lagi, rcSskrip dijalankan dalam perjalanan ke rc3- begitu efektif sistem menempatkan dirinya dalam mode single-user, kemudian memiliki pemikiran ulang dan memutuskan apa yang BENAR-BENAR harus dilakukan. Sangat membingungkan dan sebagian besar tidak terdokumentasi.

Sebagai bukti, jika Anda memeriksa /etc/inittab, Anda menemukan:

 # Boot-time system configuration/initialization script.<br>
 # This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

diikuti kemudian oleh banyak garis yang menyerupai:

l3:3:wait:/etc/init.d/rc 3
david collier
sumber
1

Runlevel 1 juga dikenal sebagai runlevel s.

Dalam sistem berbasis Debian ini adalah mode single-user / minimal . Lihat Debian Runlevel :

Runlevel adalah digit dari 0 hingga 6 atau huruf S. Runlevels 0, 6 dan S dicadangkan untuk mode shutdown, reboot, dan single user.

jonasjacek
sumber
0

S adalah untuk mode pengguna tunggal.

http://wiki.debian.org/RunLevel

dmourati
sumber
Jadi jika sebuah skrip hanya memiliki kait startup di runlevel S (seperti misalnya Shorewall), dan saya boot ke runlevel '2', akankah urutan boot memulai skrip?
Chris Lercher
Di Linux, jika keadaan default Anda (seperti yang dijelaskan dalam / etc / inittab) adalah N maka tidak seperti UNIX, hanya item 'S' di /etc/rc.d/rcN.d (lokasi ini dapat bervariasi tergantung pada distribusi Linux) akan dieksekusi saat startup, tidak ada direktori init lain yang akan digunakan.
mdpc
Anda biasanya menetapkan runlevel default di inittab. Peningkatan angka. Jadi, untuk contoh Anda, jika init Anda dikonfigurasi dalam S hanya yang sama dengan runlevel 1. Pada boot, sistem Anda akan mulai pada runlevel 1 dan meningkatkan menjalankan semua skrip init untuk tingkat itu, kemudian naikkan runlevel dan ulangi sampai itu sampai ke runlevel default yang ditentukan dalam inittab. Ini dia dua. Jadi, apa pun yang dikonfigurasikan untuk mengaktifkan 1 atau 2 akan aktif.
dmourati
1
Harap dicatat, bahwa pertanyaan saya khusus untuk Debian / Ubuntu! Saya baru saja mencoba yang berikut ini: Saya memasukkan skrip sederhana /etc/rcS.ddan /etc/rc2.d, masing-masing menulis pesan pendek (dengan stempel waktu) ke file log. Hasil: Setelah boot, saya punya pesan log untuk rcS, dan 5 detik kemudian pesan log untuk rc2.
Chris Lercher
Untuk mengubah runlevel default sistem akan boot, memodifikasi variabel DEFAULT_RUNLEVEL dalam file /etc/init/rc-sysinit.conf. Misalnya, untuk membuat boot sistem secara default ke mode pengguna tunggal, set: env DEFAULT_RUNLEVEL = 1
dmourati
0

Selain jawaban yang diberikan oleh mdpc, Dalam menjalankan level 1, tidak ada daemon (layanan) yang dimulai.

Yasser - TechToolbox
sumber