Altera o nível de execução em 16.04? [duplicado]

15

Muito simples, estou tentando mudar o nível de execução. Tudo o que eu encontro online me aponta para o arquivo localizado em:

/etc/init/rc-sysinit.conf

Aqui eu tentei mudar o "DEFAULT_RUNLEVEL" para 3 ou qualquer outra coisa e não faz diferença (o valor original era 2, o que não fazia muito sentido também). Não importa qual, minha máquina inicializa completamente e quando eu verifico o comando runlevel, vejo "N 5" como o resultado toda vez.

Como eu mudo o nível de execução? Eu prefiro não substituí-lo através de grub ou algum outro mecanismo de solução alternativa. E eu não estou procurando como desabilitar o X especificamente.

Todas as instruções que encontrei on-line eram um pouco antigas, algo mudou com o 16.04?

O que preciso fazer para que isso não seja marcado como duplicado?

    
por gnomed 17.06.2016 / 22:47

1 resposta

33

O Ubuntu 16.04 usa systemd em vez de init e, portanto, o conceito de runlevels é substituído pelo termo targets . Portanto, há de fato um mapeamento entre runlevels baseados em init e alvos baseados em systemd:

   Mapping between runlevels and systemd targets
   ┌─────────┬───────────────────┐
   │Runlevel │ Target            │
   ├─────────┼───────────────────┤
   │0        │ poweroff.target   │
   ├─────────┼───────────────────┤
   │1        │ rescue.target     │
   ├─────────┼───────────────────┤
   │2, 3, 4  │ multi-user.target │
   ├─────────┼───────────────────┤
   │5        │ graphical.target  │
   ├─────────┼───────────────────┤
   │6        │ reboot.target     │
   └─────────┴───────────────────┘

Agora, para alterar apenas os "runlevels" em 16.04, você pode usar por exemplo:

sudo systemctl isolate multi-user.target

Para tornar este o padrão "runlevel", você pode usar:

sudo systemctl enable multi-user.target
sudo systemctl set-default multi-user.target

De man systemctl

   isolate NAME
       Start the unit specified on the command line and its dependencies and stop all others. If
       a unit name with no extension is given, an extension of ".target" will be assumed.

       This is similar to changing the runlevel in a traditional init system. The isolate command
       will immediately stop processes that are not enabled in the new unit, possibly including
       the graphical environment or terminal you are currently using

Veja também man systemd.special para saber mais sobre os alvos no systemd.

    
por Ron 18.06.2016 / 11:02