В Linux мы можем получить уровень запуска следующим образом:
if [ "$(runlevel | sed 's/.* //')" = 6 ]; then echo "A reboot is in progress" fi
и уровень запуска 0 для выключения. Как я могу сделать то же самое для Free BSD?
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.