Почему мой системный пользовательский блок не запускается при загрузке?

Я пытаюсь создать системный пользовательский блок и запускать его при загрузке системы. Служба запускается вручную, однако она не запускается при загрузке.

Из поиска в Интернете я узнал, что для того, чтобы пользовательские юниты начали при загрузке, я, возможно, должен запустить 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 [email protected] -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 [email protected] -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.

Я могу запустить его вручную, и он работает:

$ systemctl --user start [email protected]
$ systemctl --user status [email protected] -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/[email protected]/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/[email protected]/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"

# systemctl status [email protected] -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/[email protected]/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/[email protected]/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.

28 голосов | спросил Michael Hampton 23 WedEurope/Moscow2015-12-23T22:52:03+03:00Europe/Moscow12bEurope/MoscowWed, 23 Dec 2015 22:52:03 +0300 2015, 22:52:03

1 ответ


44

Цифры, что я сам это выясню.

Ключ был здесь, на выходе пользовательской службы:

Dec 23 19:43:27 redmine systemd[613]: Reached target Default.

Мой блок просил загрузиться с помощью multi-user.target, но такой цели нет в пользовательской системе d.

Я изменил это на default.target в файле устройства, отключил и снова включил службу, и теперь он запускается во время загрузки.

[Install]
WantedBy=default.target

, а затем

$ systemctl --user disable [email protected]
Removed symlink /home/error/.config/systemd/user/multi-user.target.wants/[email protected]
$ systemctl --user daemon-reload
$ systemctl --user enable [email protected]
Created symlink from /home/error/.config/systemd/user/default.target.wants/[email protected] to /home/error/.config/systemd/user/[email protected]
ответил Michael Hampton 24 ThuEurope/Moscow2015-12-24T00:02:00+03:00Europe/Moscow12bEurope/MoscowThu, 24 Dec 2015 00:02:00 +0300 2015, 00:02:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132