Aktivieren Sie den Systemd User-Service global

494
Felix

Einfache Aufgabe. Ich habe einen Benutzerservice, der global auf dem System installiert ist (dh in einem Pfad wie /usr/lib/systemd/user). Ich möchte diesen Dienst jetzt für alle Benutzer des Systems aktivieren (dh, ihn standardmäßig aktivieren. Es ist mir egal, ob Benutzer ihn für sich selbst wieder deaktivieren können oder nicht). Ich weiß, dass ich den Dienst als Benutzer über systemctl --user enable my.serviceaktivieren kann - aber das aktiviert den Dienst offensichtlich nur für den aktuellen Benutzer.

Nicht sicher, wenn relevant, aber so sieht die entsprechende Unit-Datei aus. Ich habe es getestet und es funktioniert:

[Unit] Description=My App After=network-online.target  [Service] Type=simple ExecStart=/usr/bin/myapp --systemd-log ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure RestartSec=5s  [Install] WantedBy=default.target 
2

1 Antwort auf die Frage

3
grawity

Verwenden systemctl --global enable.

Dadurch wird ein Symlink in erstellt /etc/systemd/user/default.target.wants. Benutzer können das Gerät nicht einfach deaktivieren, sie können sie jedoch weiterhin bearbeiten (überschreiben) oder vollständig maskieren.

Ich nehme an, Sie meinten "Aktivieren", "Nicht aktivieren", da diese Option nicht vorhanden zu sein scheint - aber ohne die Striche funktioniert es wie erwartet Felix vor 5 Jahren 0