Come cambio il runlevel su systemd?

18

Semplicemente, sto provando a cambiare il runlevel. Tutto ciò che trovo online mi indirizza al file che si trova in:

/etc/init/rc-sysinit.conf

Qui ho provato a cambiare "DEFAULT_RUNLEVEL" a 3 o qualsiasi altra cosa e non fa alcuna differenza (il valore originale era 2 che non aveva molto senso neanche). Non importa cosa, la mia macchina si avvia completamente e quando controllo il comando runlevel, vedo "N 5" come risultato ogni volta.

Come cambio il runlevel? Preferirei non ignorarlo tramite grub o qualche altro meccanismo di aggiramento. E non sto cercando come disabilitare X in particolare.

Tutte le istruzioni che stavo cercando online erano un po 'vecchie, qualcosa è cambiato con 16.04?

    
posta gnomed 17.06.2016 - 22:47

1 risposta

39

Ubuntu 16.04 usa systemd invece di init e quindi il concetto di runlevels è sostituito dal termine targets . Quindi esiste effettivamente una mappatura tra i runlevel basati su init e gli obiettivi systemd-based:

   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     │
   └─────────┴───────────────────┘

Ora, per cambiare i "runlevel" in 16.04, puoi usare per esempio:

sudo systemctl isolate multi-user.target

Per rendere questo il "runlevel" predefinito, puoi usare:

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

Da 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

Dai anche un'occhiata a man systemd.special per saperne di più sugli obiettivi in ​​systemd.

    
risposta data Ron 18.06.2016 - 11:02

Leggi altre domande sui tag