Linuxでは、そのように実行レベルを得ることができます。
if [ "$(runlevel | sed 's/.* //')" = 6 ]; then
echo "A reboot is in progress"
fi
_
そして実行レベル0はシャットダウン用です。無料BSDでどのように同じことをすることができますか?
RunLevelはsysvinit
(Systemv-Style Init)に固有の概念です。 Linuxで使用されているINITの他の範囲(たとえば、systemd
)も、RunLevelの概念を持っていません。
RunLevelの概念もBSDスタイルのinitには存在しません。したがって、FreeBSDのラングレベルはありません。
Mikhailは、Linux/Sysvスタイルの実行レベルがないという点で正しいですが、シングルとマルチユーザーモードがあります。これはロータリーですが、私がシングルまたはマルチユーザーにプログラム的にあなたがプログラム的にあなたがいるかどうかを知ることを私が発見した最善の方法です:
FreeBSDが単一のユーザーモードにあるとき、 "Adjkerntz"はまだ起動されていません(そして、あなたもドロップダウンした場合は殺されます)、それをテストすることができます。
if ! ps -auxww | grep -v "grep" | grep "adjkerntz" > /dev/null; then
echo "Single user";
else
echo "Multi-user";
fi
_
この作品を9.xと10.xで確認しました。おそらくFreeBSDの他のすべてのバージョン。
の存在をテストする
/var/run/nologin
_
ファイルは同じ情報を提供します。