Если убрать WantedBy=multi-user.target
, то systemctl enable your-example-here
будет (шумно )ничего не делать.
Если вы устанавливаете чистый systemd из исходного кода, «целью по умолчанию», с которой он загружается, будет graphical.target
.
Запуск graphical.target
запускает multi-user.target
плюс любое устройство (с ), необходимое для обеспечения графического пользовательского интерфейса. Эта дополнительная сложность была устроена в попытке подражать устаревшим «уровням выполнения».
Вы действительно должны игнорировать/приукрашивать эмуляцию "runlevel"; все равно не правильно работает. Прости! Я предполагаю, что причина подчеркивания «графический» против. «многопользовательский -пользователь» исторически заключается в том, что графическое программное обеспечение 1 )не так надежно и зрело, как остальная часть системы, а 2 )требует много ресурсов.
Как правило, только несколько единиц специфичны для graphical.target
. Существует единственная служба для самого графического интерфейса, например gdm.target
. Есть несколько служб поддержки, которые в основном также используются графическим интерфейсом.
Изменить :Поиск в Google подсказывает, что если у вас не установлен графический интерфейс, но в качестве «цели по умолчанию» оставлено значение graphical.target
, тогда systemd может записать в журнал предупреждение. «Невозможно добавить задание зависимости для модуля display -manager.service, игнорируя :Unit display -manager.service не удалось загрузить :Нет такого файла или каталога». Мы хотим не засорять наши журналы ненужными предупреждениями. Поэтому, если вы не устанавливали графический интерфейс, хорошо использовать systemctl set-default multi-user
. Хотя система установки для вашей ОС, возможно, уже позаботилась об этом за вас. Кроме этого, я решительно выступаю за апатию в этом вопросе :-).
Некоторые службы и другие типы устройств «участвуют в ранней загрузке». Они определены для запускаBefore=sysinit.target
-прямо или косвенно. Большинство служб запускаются только After=sysinit.target
-, это происходит автоматически, если служба не устанавливает DefaultDependencies=no
.
Большинство сервисов-примеров не подпадают ни под одну из вышеперечисленных категорий, поэтому мы прикрепляем их к multi-user.target
. Это включает в себя большинство сетевых служб (, например. веб-сервер ), который является архетипическим системным сервисом.
Другая возможность, которую вы можете увидеть, это сервисный модуль, который не запускается автоматически при загрузке. Так что это было бы не нужно WantedBy=multi-user.target
. Вместо этого служба может быть запущена или «активирована» чем-то другим.
Одним из примеров этого является услуга, активируемая dbus. Dbus можно настроить для запуска вашей службы по требованию -, когда к службе выполняется вызов dbus.
Для сетевых служб можно использовать службы, активируемые сокетом -. Это может быть проще найти подробности, потому что вся конфигурация находится в единицах systemd. Например, sshd.socket
или ssh.socket
обычно доступны для активации ssh@.service
или sshd@.service
. Хотя, я думаю, чаще всего запускают службу sshd во время загрузки.
Как всегда, вышеизложенное упрощает и опускает детали, которые кажутся ненужными.
Разница между Wi-Fi и Bluetooth (в ситуации гибернации или приостановки )будет заключаться только в деталях реализации :Есть ли у кого-то баг, так что его нельзя возобновить.