Wie man Runlevel in FreeBSD erhält

2093
kamaci

Bei Linux können wir wie folgt Run-Level bekommen:

if [ "$(runlevel | sed 's/.* //')" = 6 ]; then echo "A reboot is in progress" fi 

und Runlevel 0 ist für das Herunterfahren. Wie kann ich dasselbe für Free BSD tun?

1

3 Antworten auf die Frage

2
Mikhail Kupchik

Runlevel ist ein spezifisches Konzept für sysvinit(SystemV-Stil). Andere Arten von init, die in Linux verwendet werden (zum Beispiel systemd), haben ebenfalls kein Runlevel-Konzept.

Das Konzept des Runlevels existiert auch nicht in BSD-artigen Init. Daher gibt es keine Runlevel in FreeBSD.

0
kamaci

Testing the presence of

/var/run/nologin 

file gives same information.

0
Adam Strohl

Mikhail ist richtig, da es keine Linux / SysV-Laufebenen gibt, es gibt jedoch einen Einzel- und Mehrbenutzermodus. Dies ist ein Kreisverkehr, aber der beste Weg, den ich entdeckt habe, um festzustellen, ob Sie programmgesteuert Einzel- oder Mehrfachbenutzer sind:

Wenn sich FreeBSD im Einzelbenutzermodus befindet, wurde "adjkerntz" noch nicht gestartet (und es wird auch beendet, wenn Sie wieder herunterfallen). Sie können dies also testen:

if ! ps -auxww | grep -v "grep" | grep "adjkerntz" > /dev/null; then echo "Single user"; else echo "Multi-user"; fi 

Ich habe dies unter 9.x und 10.x und wahrscheinlich allen anderen FreeBSD-Versionen getestet.