Предполагается, что вы используете gdm в качестве менеджера входа,
[Unit]
Description=setup script
Before=gdm.service
[Service]
Type=oneshot
ExecStart=/my/setup/script
[Install]
Если вы не используете gdm, выясните, какая служба запускает xorg, и поместите это в строку Before=
.
Объяснение: Было две проблемы: 1. В вашем случае default.target
, вероятно, является симлинком, указывающим на graphical.target. поэтому Wants=default.target
указывает, что он должен быть запущен после графического target 2. Before=default.target
не работает: Цели используются для сообщения systemd о том, когда определенные этапы процесса загрузки завершены, а не когда они начинают загружаться. Поэтому использование цели имеет смысл, только если вы хотите запустить что-то после того, как цель была достигнута, а не до этого, или если вы хотите убедиться, что цель достигнута только после того, как ваша служба закончила загрузку.