O Slackware e seus derivados, como o Slamd64, são ótimos opções de distribuições, principalmente para aqueles que não se canção de investigar seu hardware e se divertem com isto, como vem sendo o meu caso a quase 14 anos.

No entanto, algumas tarefas, quando muito solicitadas, podem se tornar extremamente tediosas, como tem ocorrido no caso da configuraćão de meu novo notebook. A simples tarefa de alterar o runlevel do boot da máquina, em meio a diversos teste que tenho feito, extrapolaram minha tolerância.

A ferramenta que vou apresentar aqui, é o setrunlevel. Um aplicativo que fiz para alterar o runlevel, editando o /etc/inittab e/ou executando o comando telinit. O setrunlevel é um aplicativo em bash shell, que pode operar tanto no modo interativo, quanto não interativo.

O Aplicativo

A sintaxe do setrunlevel é:


set-runlevel [option] [runlevel]

Onde as opções são:

  • help mensagem de ajuda;
  • install instala setrunlevel em /usr/local/sbin/;
  • boot [runlevel] edita o /etc/inittab com o runlevel passado;
  • all [runlevel] alterar o runlevel atual e edita o/etc/inittab para futuras reinicializaćões do sistema. Na prática, edita o /etc/inittab e executa o comando telinit com o runlevel passado;
  • [runlevel], altera o runlevel atual, sem editar o /etc/inittab;
  • show apresenta o runlevel atual.

Observe que [runlevel] é opcional. Se nenhum runlevel for passado, quando necessário o programa entrará no modo interativo e um dialogo para seleção será apresentado.

Somente uma opção pode ser passada por vez. Demais opções serão ignoradas.

Os runlevels configurados no Slackware são apresentados abaixo:

  • 0 halt system
  • 1 modo single user
  • 2 não usado (configurado para o runlevel 3)
  • 3 modo multiusuário (runlevel padrão do Slackware)
  • 4 modo gráfico, X11, com o KDM/GDM/XDM
  • 5 não usado (configurado para o runlevel 3)
  • 6 reboot

OBS:Para testar o aplicativo, execute o setrunlevel iniciando a variável ISTEST com qualquer coisa. Com isto as alterações não serão realizadas, apenas mensagens dos comandos a serem executados serão apresentados:

# ISTEST=2 setrunlevel 1
Current runlevel set to 1

Exemplos

A seguir vou apresentar alguns exemplos do uso deste programa.

Modo interativo

Para chamar o runlevel no modo interativo, basta omitir o runlevel:

# set-runlevel

setrunlevel: Modo interativo

Isto irá alterar o runlevel atual para o modo selecionado. Se for usado com a opção all, além de mudar o runlevel atual, o arquivo /etc/inittab será escrito para mudança do runlevel em iniciações futuras.

# setrunlevel all

Modo não Interativo

A linha abaixo configura o runlevel para 4 no próxima inicialização do sistema e muda para o runlevel 4 o estado atual do sistema:

# setrunlevel all 4

Para conhecer o runlevel atual use a opção show:

# setrunlevel show
Current runlevel: 4
Inittab runlevel: 4

Para instalar o comando runlevel no sistema, use a opção install. Com esta opção, o aplicativo irá se copiar em /usr/local/sbin, para uso pelo root:

# setrunlevel install

Considerações finais

O setrunlevel é um script bem simples que usa um menu dialog para o modo interativo. Por se tratar de um programa em bash script, ele é muito flexível, podendo ser facilmente adaptado a outras distribuições. Neste caso se deve editar a variável RUNLVL_STR, no início do programa e o texto de help.

O programa esta disponível em setrunlevel, baixe-o, estude-o e divirta-se.