Vraag Wat is Runlevel 'S' op Debian / Ubuntu voor


Volgens Wikipedia, 'S' wordt verondersteld een standaard runlevel te zijn: "Single-User Mode". Maar als ik me niet vergis, is de Single-User-modus op Debian Runlevel 1. Eén Debian-artikel Ik vond claims, dat 'S' een runlevel is "dat het systeem gebruikt op weg naar een ander runlevel". Interessant...

Eigenlijk had ik dit runlevel tot nu toe vrijwel altijd genegeerd, maar vandaag speelde ik met Firestarter (ja, echt, een firewall voor eindgebruikers) alleen omdat ik nieuwsgierig was, welke firewallregels het zou genereren. Maar toen merkte ik dat het een opstarthaak creëerde in /etc/rcS.d, en ik vroeg me af of mijn firewall-script dat misschien ook zou moeten hebben?

Bijwerken

Nu ben ik nog meer geïnteresseerd in wat het eigenlijk is op Debian / Ubuntu, omdat het Shorewall-pakket (dat een sterk "gedebianiseerd" pakket is) ook zijn (enige!) starthaak maakt in rcS.d!


6
2017-07-14 19:51


oorsprong




antwoorden:


Ik kijk op deze manier naar de runlevels:

 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

Daarom is een firewall echt nodig als TCP / IP actief is en dat gebeurt meestal alleen in Init State 3.


2
2017-07-14 20:49



Dit hele runlevel-concept is een erfenis uit het verleden. Tegenwoordig is het meestal de modus voor één gebruiker (voor onderhoud) en een andere normale modus (zoals 2 of 5, afhankelijk van de distro) wordt gebruikt. Ik zie niet echt een use case voor iets anders. - cstamas
Eigenlijk nog erger, de nieuwste distributies verdrijven runniveaus allemaal samen (momenteel worden ze ondersteund als legacy-zaken) en gaan naar benoemde staten met dependances onder hen (zie Fedora 15). - mdpc


Runlevel 1 is ook bekend als runlevel s. 

In op Debian gebaseerde systemen is dit de een gebruiker / minimale modus. Zien Debian Runlevel:

Het runlevel is een cijfer van 0 tot 6 of de letter S. Runlevels 0, 6 en S zijn gereserveerd voor resp. Shutdown, reboot en single user mode.


2
2017-11-18 10:08





Al het bovenstaande lijkt rond een direct antwoord op de gestelde vraag te gaan.

Van alles wat ik kan vinden, de rcS.d scripts worden geïmplementeerd zoals het is S stond voor "opstarten" niet "single".

Ze worden allemaal uitgevoerd tijdens het opstarten. Als u run level 1 dan wilt gebruiken, zijn de scripts in rc1.d worden gerund (wat best vrij leeg kan zijn, gezien al het werk dat we net hebben gedaan rcS )

Meer to the point, de rcS scripts worden uitgevoerd op weg naar rc3 - zo effectief dat het systeem zichzelf in de modus voor één gebruiker plaatst, vervolgens opnieuw nadenkt en beslist wat het ECHT moet doen. Zeer verwarrend en meestal slecht gedocumenteerd.

Als bewijs, als je het onderzoekt /etc/inittab, je vindt:

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

later gevolgd door vele lijnen die lijken op:

l3:3:wait:/etc/init.d/rc 3

2
2018-02-20 12:00





S is voor de modus voor één gebruiker.

http://wiki.debian.org/RunLevel


0
2017-07-15 16:16



Dus als een script alleen een opstarthaak heeft in runlevel S (zoals bijvoorbeeld Shorewall) en ik opstart naar runlevel '2', start de opstartvolgorde dan het script? - Chris Lercher
In Linux, als uw standaardstatus (zoals beschreven in / etc / inittab) gelijk is aan N, in tegenstelling tot UNIX, zullen alleen de 'S'-items in /etc/rc.d/rcN.d (deze locatie kan verschillen afhankelijk van de Linux-distributie) uitgevoerd tijdens het opstarten, zal er geen andere init-directory worden gebruikt. - mdpc
U stelt meestal uw standaard runlevel in inittab in. De getallen nemen toe. Dus, bijvoorbeeld, als je init is geconfigureerd in alleen S, is dat hetzelfde als runlevel 1. Bij het opstarten start je systeem op runlevel 1 en verhoog je alle init-scripts voor dat niveau, verhoog je het runlevel en herhaal je het totdat het krijgt het standaard runlevel dat is opgegeven in inittab. Hier zijn het er twee. Dus alles wat is geconfigureerd om in 1 of 2 in te schakelen, is ingeschakeld. - dmourati
Let op, mijn vraag is specifiek voor Debian / Ubuntu! Ik heb zojuist het volgende geprobeerd: ik heb een eenvoudig script geplaatst /etc/rcS.d en /etc/rc2.d, elk schrijft een kort bericht (met een tijdstempel) naar een logbestand. Resultaat: na het opstarten heb ik een logbericht voor rcS en 5 seconden later een logbericht voor rc2. - Chris Lercher
Om het standaard runlevel te wijzigen, zal het systeem opstarten, de variabele DEFAULT_RUNLEVEL wijzigen in bestand /etc/init/rc-sysinit.conf. Als u het systeem bijvoorbeeld standaard wilt laten opstarten naar de modus voor één gebruiker, stelt u in: env DEFAULT_RUNLEVEL = 1 - dmourati


Naast het antwoord van mdpc, worden in run level 1 geen daemons (services) gestart.


0
2017-07-15 17:01