Я пытаюсь создать системный пользовательский модуль и запустить его при загрузке системы. Служба запускается вручную, но не запускается при загрузке.
Из поиска в Интернете я узнал, что для запуска пользовательских модулей при загрузке якобы нужно запустить loginctl enable-linger <username>
, но, похоже, это никак не повлияло. Действительно, на странице руководства написано:
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.
Несмотря на выполнение этой команды, мой сервис не запускается при загрузке.
loginctl enable-linger error
Единица:
$ 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
Когда я перезагружаюсь, он не работает:
$ systemctl --user status thin@redmine -l
● thin@redmine.service - A fast and very simple Ruby web server
Loaded: loaded (/home/error/.config/systemd/user/thin@.service; enabled; vendor preset: enabled)
Active: inactive (dead)
# systemctl status user@1000 -l
● user@1000.service - User Manager for UID 1000
Loaded: loaded (/usr/lib/systemd/system/user@.service; 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/user@1000.service
├─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.
Я могу запустить его вручную, и он работает:
$ systemctl --user start thin@redmine
$ systemctl --user status thin@redmine -l
● thin@redmine.service - A fast and very simple Ruby web server
Loaded: loaded (/home/error/.config/systemd/user/thin@.service; 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/user@1000.service/thin.slice/thin@redmine.service
└─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
● user@1000.service - User Manager for UID 1000
Loaded: loaded (/usr/lib/systemd/system/user@.service; 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/user@1000.service
├─613 /usr/lib/systemd/systemd --user
├─615 (sd-pam)
└─thin.slice
└─thin@redmine.service
└─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"
Как мне выяснить, почему этот сервис не запускается при загрузке, и заставить его это сделать?
Операционная система Fedora 23 x86_64, systemd 222-10.
источник
systemctl --user list-units --type=target
для вывода списка целей для пользователя systemd.