Как получить уровень запуска во FreeBSD

2022
kamaci

В Linux мы можем получить уровень запуска следующим образом:

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

и уровень запуска 0 для выключения. Как я могу сделать то же самое для Free BSD?

1

3 ответа на вопрос

2
Mikhail Kupchik

Runlevel is a concept specific to sysvinit (SystemV-style init). Other flavours of init used in Linux (for example, systemd) don't have concept of runlevel either.

The concept of runlevel also does not exist in BSD-style init, hence no runlevels in FreeBSD.

0
kamaci

Проверка наличия

/var/run/nologin 

файл дает ту же информацию.

0
Adam Strohl

Mikhail is correct in that there are no Linux/SysV style run levels, however there is single and multi-user mode. This is roundabout but the best way I've discovered to tell if you're in single or multi-user programmatically:

When FreeBSD is in single user mode "adjkerntz" hasn't been started yet (and it is killed if you drop back down, too), so you can test for that:

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

I have verified this works under 9.x and 10.x and likely all other versions of FreeBSD.

Похожие вопросы