Como obter o nível de execução no FreeBSD

1

No Linux, podemos obter o nível de execução como:

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

e o nível de execução 0 é para o desligamento. Como posso fazer o mesmo para o Free BSD?

    
por kamaci 03.08.2012 / 10:15

3 respostas

2

O runlevel é um conceito específico para sysvinit (init estilo SystemV). Outros tipos de init usados no Linux (por exemplo, systemd ) também não possuem conceito de nível de execução.

O conceito de runlevel também não existe no init estilo BSD, portanto nenhum runlevels no FreeBSD.

    
por 14.03.2013 / 21:17
0

Testando a presença de

/var/run/nologin
O arquivo

fornece as mesmas informações.

    
por 03.08.2012 / 10:57
0

Mikhail está correto, pois não há níveis de execução no estilo Linux / SysV, no entanto, há modo de usuário único e multiusuário. Isso é indireto, mas a melhor maneira que descobri é dizer se você está usando um ou vários usuários programaticamente:

Quando o FreeBSD está no modo de usuário único, o "adjkerntz" ainda não foi iniciado (e ele também é cancelado se você voltar ao normal), então você pode testar:

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

Eu verifiquei que isso funciona em 9.xe 10.xe provavelmente em todas as outras versões do FreeBSD.

    
por 19.11.2014 / 10:02