Изменить уровень запуска на 16.04? [Дубликат]

15

Довольно просто, я пытаюсь изменить уровень запуска. Все, что я нахожу в Интернете, указывает мне на файл, расположенный в:

/etc/init/rc-sysinit.conf

Здесь я попытался изменить «DEFAULT_RUNLEVEL» на 3 или что-то еще, и это не имеет значения (исходное значение было 2, что тоже не имеет смысла). Независимо от того, что, моя машина полностью загружается, и когда я проверяю команду уровня запуска, я вижу результат «N 5» каждый раз.

Как изменить уровень запуска? Я бы предпочел не переопределить его через grub или какой-нибудь другой механизм обхода. И я не ищу, как конкретно отключить X.

Все инструкции, которые я находил в Интернете, были немного старыми, что-то изменилось с 16.04?

Что мне нужно сделать, чтобы это не было помечено как дубликат?

    
задан gnomed 17.06.2016 в 20:47
источник

1 ответ

32

Ubuntu 16.04 использует systemd вместо init и, следовательно, понятие runlevels заменяется на термин targets . Таким образом, действительно существует сопоставление между уровнями запуска на основе init и целями на основе 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     │
   └─────────┴───────────────────┘

Теперь, чтобы просто изменить «уровни выполнения» в 16.04, вы можете использовать, например:

sudo systemctl isolate multi-user.target

Чтобы сделать это по умолчанию «runlevel», вы можете использовать:

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

От 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

Также посмотрите man systemd.special , чтобы узнать больше о целях в systemd.

    
ответ дан Ron 18.06.2016 в 09:02
источник