Ich versuche, eine systemd-Benutzereinheit zu erstellen und sie beim Systemstart starten zu lassen. Der Dienst wird manuell gestartet, jedoch nicht beim Booten.
Durch die Suche im Internet habe ich erfahren, dass Benutzergeräte beim Booten gestartet werden sollen loginctl enable-linger <username>
, aber dies scheint überhaupt keine Auswirkungen zu haben. Tatsächlich heißt es auf der Manpage:
Enable/disable user lingering for one or more users. If enabled for a specific user, a user manager is spawned for the user at boot and kept around after logouts. This allows users who are not logged in to run long-running services.
Trotz Ausführung dieses Befehls startet mein Dienst nicht beim Booten.
loginctl enable-linger error
Die Einheit:
$ cat ~/.config/systemd/user/thin\@.service
[Unit]
Description=A fast and very simple Ruby web server
[Service]
Type=simple
EnvironmentFile=/home/error/.config/thin/%i
ExecStart=/usr/bin/bash /home/error/.rvm/wrappers/%i/thin start -a $THIN_BIND -p $THIN_PORT
WorkingDirectory=/srv/www/%i
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Wenn ich neu starte, läuft es nicht:
$ systemctl --user status thin@redmine -l
● [email protected] - A fast and very simple Ruby web server
Loaded: loaded (/home/error/.config/systemd/user/[email protected]; enabled; vendor preset: enabled)
Active: inactive (dead)
# systemctl status user@1000 -l
● [email protected] - User Manager for UID 1000
Loaded: loaded (/usr/lib/systemd/system/[email protected]; static; vendor preset: disabled)
Active: active (running) since Wed 2015-12-23 19:43:27 GMT; 13s ago
Main PID: 613 (systemd)
Status: "Startup finished in 38ms."
CGroup: /user.slice/user-1000.slice/[email protected]
├─613 /usr/lib/systemd/systemd --user
└─615 (sd-pam)
Dec 23 19:43:27 redmine systemd[613]: Reached target Sockets.
Dec 23 19:43:27 redmine systemd[613]: Starting Sockets.
Dec 23 19:43:27 redmine systemd[613]: Reached target Timers.
Dec 23 19:43:27 redmine systemd[613]: Starting Timers.
Dec 23 19:43:27 redmine systemd[613]: Reached target Basic System.
Dec 23 19:43:27 redmine systemd[613]: Starting Basic System.
Dec 23 19:43:27 redmine systemd[613]: Reached target Default.
Dec 23 19:43:27 redmine systemd[613]: Startup finished in 38ms.
Dec 23 19:43:27 redmine systemd[613]: Starting Default.
Dec 23 19:43:27 redmine systemd[1]: Started User Manager for UID 1000.
Ich kann es manuell starten und es funktioniert:
$ systemctl --user start thin@redmine
$ systemctl --user status thin@redmine -l
● [email protected] - A fast and very simple Ruby web server
Loaded: loaded (/home/error/.config/systemd/user/[email protected]; enabled; vendor preset: enabled)
Active: active (running) since Wed 2015-12-23 19:43:50 GMT; 5s ago
Main PID: 1265 (ruby)
CGroup: /user.slice/user-1000.slice/[email protected]/thin.slice/[email protected]
└─1265 ruby /home/error/.rvm/gems/ruby-2.2.1@redmine/bin/thin start -a ::1 -p 8008
Dec 23 19:43:50 redmine systemd[613]: Started A fast and very simple Ruby web server.
Dec 23 19:43:50 redmine systemd[613]: Starting A fast and very simple Ruby web server...
Dec 23 19:43:52 redmine bash[1265]: /home/error/.rvm/gems/ruby-2.2.1@redmine/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"
# systemctl status user@1000 -l
● [email protected] - User Manager for UID 1000
Loaded: loaded (/usr/lib/systemd/system/[email protected]; static; vendor preset: disabled)
Active: active (running) since Wed 2015-12-23 19:43:27 GMT; 40s ago
Main PID: 613 (systemd)
Status: "Startup finished in 38ms."
CGroup: /user.slice/user-1000.slice/[email protected]
├─613 /usr/lib/systemd/systemd --user
├─615 (sd-pam)
└─thin.slice
└─[email protected]
└─1265 ruby /home/error/.rvm/gems/ruby-2.2.1@redmine/bin/thin start -a ::1 -p 8008
Dec 23 19:43:27 redmine systemd[613]: Startup finished in 38ms.
Dec 23 19:43:27 redmine systemd[613]: Starting Default.
Dec 23 19:43:27 redmine systemd[1]: Started User Manager for UID 1000.
Dec 23 19:43:50 redmine systemd[613]: Created slice -.slice.
Dec 23 19:43:50 redmine systemd[613]: Starting -.slice.
Dec 23 19:43:50 redmine systemd[613]: Created slice thin.slice.
Dec 23 19:43:50 redmine systemd[613]: Starting thin.slice.
Dec 23 19:43:50 redmine systemd[613]: Started A fast and very simple Ruby web server.
Dec 23 19:43:50 redmine systemd[613]: Starting A fast and very simple Ruby web server...
Dec 23 19:43:52 redmine bash[1265]: /home/error/.rvm/gems/ruby-2.2.1@redmine/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"
Wie finde ich heraus, warum dieser Dienst nicht beim Booten startet, und wie kann ich ihn dazu bringen?
Das Betriebssystem ist Fedora 23 x86_64, systemd 222-10.
quelle
systemctl --user list-units --type=target
diese Option, um die Ziele für den Benutzer systemd aufzulisten.