Сервис Systemd - что такое `multi-user.target`

41

Я сталкивался с тем, .serviceчто содержит следующее:

[Install]
WantedBy=multi-user.target

Оригинальный .serviceфайл можно найти ЗДЕСЬ .

Я на Ubuntu 16.04LTS.

eddyP23
источник
3
Возможная копия того, что является целью systemd, службой и сокетом?
Муру
2
Это не правильный дубликат, поскольку (читая за заголовком) этот вопрос задает вопрос о [Install]разделе файла модуля. По иронии судьбы, это самая следующая таблица по сравнению с гиперссылкой в ​​вопросе.
JdeBP
Этот новый связанный с этим вопрос содержит гораздо больше деталей в ответе, и его стоит прочитать.
Wildcard

Ответы:

15

Это механизм обработки зависимостей в systemd. multi-user.target - альтернатива уровню запуска 3 в мире systemV. Тем не менее, достижение multi-user.target включает запуск службы «Confluent ZooKeeper». Вероятно, это то, что вам действительно нужно.

Георгий Иванов
источник
19

multi-user.target означает, что systemd-сервис запустится, когда система достигнет уровня выполнения 2.

Чтобы дополнить ответ, вот таблица целей и их уровней выполнения:

Run Lvl Target Units                        Description
0       runlevel0.target, poweroff.target   Shut down and power off
1       runlevel1.target, rescue.target     Set up a rescue shell
2,3,4   runlevel[234].target,               Set up a non-gfx multi-user shell
        multi-user.target
5       runlevel5.target, graphical.target  Set up a gfx multi-user shell
6       runlevel6.target, reboot.target     Shut down and reboot the system
Тобиас Холм
источник
Но это WantedBy = multi-user.target, так что это просто означает, что служба будет запущена и до уровня запуска 2, верно? не обязательно, когда система достигает уровня запуска 2, я не прав?
Тристан
Что такое gfxмногопользовательская оболочка? Любая ссылка?
Джузеппе Крино
Многопользовательская оболочка gfx - это многопользовательская система с графическим интерфейсом.
Тобиас Холм
3

Я нашел этот учебник самым простым для понимания. Вы можете выполнить следующую команду самостоятельно, чтобы увидеть, что там:

$ ls -al /lib/systemd/system/runlevel*
lrwxrwxrwx. 1 root root 15 Apr 25 10:31 /lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Apr 25 10:31 /lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Apr 25 10:31 /lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 25 10:31 /lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 25 10:31 /lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Apr 25 10:31 /lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Apr 25 10:31 /lib/systemd/system/runlevel6.target -> reboot.target

Но вы должны, вероятно, просто прочитать связанный ответ принятый ответ о целях.

icc97
источник