LINUX.ORG.RU

История изменений

Исправление intelfx, (текущая версия) :

К примеру, я хочу, чтобы при загрузке таргета rescue не загружался таргет sound, но чтобы sound загружался при multi-user?

sound.target активируется из udev при обнаружении звуковых карт, вне зависимости от текущего состояния системы.

Если ты хочешь активировать sound.target только в том случае, если система в multi-user.target — можно попытаться сделать это с Requisite=, но это сработает не полностью. Точнее, сработать-то сработает, но если ты загрузишься в rescue.target, а потом захочешь перейти в multi-user.target, то sound.target тебе придётся запустить вручную.

Или противоположная задача, к примеру, я хочу создать новую цель нечто среднее между rescue и multi-user, то есть я могу переводить систему на этот уровень не загружая multi-user. Однако при загрузке multi-user загружается куча других юнитов: systemd-user-sessions.service, systemd-update-utmp-runlevel.service, systemd-logind.service и др.. Я конечно могу их покидать в mytarget.target.mants

Да, так и нужно сделать.

но можно-ли обойтись без этого, ведь в multi-user загрузка этих юнитов не прописана?

Прописана, см. /usr/lib/systemd/system/multi-user.target.wants. Если ты хочешь сделать свою цель, похожую на multi-user — тебе придётся скопировать эти симлинки (нужные из них) в .wants новой цели.

Исходная версия intelfx, :

К примеру, я хочу, чтобы при загрузке таргета rescue не загружался таргет sound, но чтобы sound загружался при multi-user?

sound.target активируется из udev при обнаружении звуковых карт, вне зависимости от текущего состояния системы. Если ты хочешь активировать sound.target только если система в multi-user.target — можно попытаться сделать это с Requisite=, но это сработает не полностью. Точнее, сработать-то сработает, но если ты загрузишься в rescue.target, а потом захочешь перейти в multi-user.target, то sound.target тебе придётся запустить вручную.

Или противоположная задача, к примеру, я хочу создать новую цель нечто среднее между rescue и multi-user, то есть я могу переводить систему на этот уровень не загружая multi-user. Однако при загрузке multi-user загружается куча других юнитов: systemd-user-sessions.service, systemd-update-utmp-runlevel.service, systemd-logind.service и др.. Я конечно могу их покидать в mytarget.target.mants

Да, так и нужно сделать.

но можно-ли обойтись без этого, ведь в multi-user загрузка этих юнитов не прописана?

Прописана, см. /usr/lib/systemd/system/multi-user.target.wants. Если ты хочешь сделать свою цель, похожую на multi-user — тебе придётся скопировать эти симлинки (нужные из них) в .wants новой цели.