LINUX.ORG.RU

Проблемы с автозапуском systemd юнита

 ,


0

2

Проблема: не стартует при запуске системы user@1000.service. Запуск руками срабатывает, но это крайне неудобно. Сам юнит не изменял, override'ов тоже нет.

Система Debian 9.

     $ systemctl --failed                                                                                                                                     

       UNIT              LOAD   ACTIVE SUB    DESCRIPTION                                                                                                                      
     ● user@1000.service loaded failed failed User Manager for UID 1000                                                                                                        
                                                                                                                                                                          
     LOAD   = Reflects whether the unit definition was properly loaded.                                                                                                        
     ACTIVE = The high-level unit activation state, i.e. generalization of SUB.                                                                                                
     SUB    = The low-level unit activation state, values depend on unit type.                                                                                                 

     1 loaded units listed. Pass --all to see loaded but inactive units, too.
     To show all installed unit files use 'systemctl list-unit-files'.

     $ systemctl status user@1000.service

     ● user@1000.service - User Manager for UID 1000
     Loaded: loaded (/lib/systemd/system/user@.service; static; vendor preset: enabled)
     Active: failed (Result: timeout) since Wed 2017-08-23 15:22:41 MSK; 1 day 21h ago
     Process: 1714 ExecStart=/lib/systemd/systemd --user (code=exited, status=0/SUCCESS)
     Main PID: 1714 (code=exited, status=0/SUCCESS)
     Tasks: 0
     CGroup: /user.slice/user-1000.slice/user@1000.service
     
     $ systemctl start user@1000.service
     $ systemctl status user@1000.service

     ● user@1000.service - User Manager for UID 1000
     Loaded: loaded (/lib/systemd/system/user@.service; static; vendor preset: enabled)
     Active: active (running) since Fri 2017-08-25 13:19:19 MSK; 2s ago
     Main PID: 10223 (systemd)
     Status: "Startup finished in 7.994s."
     Tasks: 5
     CGroup: /user.slice/user-1000.slice/user@1000.service
             ├─emacs.service
             │ ├─10264 /usr/bin/emacs --daemon
             │ └─10265 /usr/bin/emacs --daemon
             └─init.scope
               ├─10223 /lib/systemd/systemd --user
               └─10224 (sd-pam)
     
     $ cat /lib/systemd/system/user@.service

     #  This file is part of systemd.
     #
     #  systemd is free software; you can redistribute it and/or modify it
     #  under the terms of the GNU Lesser General Public License as published by
     #  the Free Software Foundation; either version 2.1 of the License, or
     #  (at your option) any later version.

     [Unit]
     Description=User Manager for UID %i
     After=systemd-user-sessions.service

     [Service]
     User=%i
     PAMName=systemd-user
     Type=notify
     ExecStart=-/lib/systemd/systemd --user
     Slice=user-%i.slice
     KillMode=mixed
     Delegate=yes
     TasksMax=infinity
     TimeoutStopSec=120s

Active: failed (Result: timeout)

Что-то юзерское очень долго стартует, или юнит для этого не того типа.

Cast intelfx как специалиста по systemd, хотя он и так прочитает наверное.

Radjah ★★★★★ ()

Проблема: не стартует при запуске системы user@1000.service.

А должен? В какой момент и почему он должен запуститься?

Active: failed (Result: timeout)

Могу увидеть полный лог с момента загрузки?

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

1) Раньше стартовал без проблем. Вывод systemctl status с запущенным руками user@1000.service. Также заметил, что при запуске

systemctl --user status emacs.service

выводит следующую ошибку

Failed to get properties: Process org.freedesktop.systemd1 exited with status 1

2) sudo journalctl -b

Karthago ★★ ()
Последнее исправление: Karthago (всего исправлений: 1)
Ответ на: комментарий от Karthago

Так же на

systemctl --user status
выводит
Failed to read server status: Input/output error

Karthago ★★ ()
Ответ на: комментарий от Karthago

В целом Radjah прав, но корневая причина в том, что у тебя, по всей видимости, таймаут запуска user@1000.service — десять секунд. Это мало и по умолчанию так быть не должно.

Во-первых, покажи systemctl show user@1000 | grep Timeout. И вместо cat /lib/systemd/system/user@.service покажи systemctl cat user@1000 — так мы увидим все файлы, в т. ч. drop-in'ы, которые имеют отношение к этому юниту.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 5)
Ответ на: комментарий от intelfx
systemctl show user@1000 | grep Timeout

TimeoutStartUSec=10s
TimeoutStopUSec=2min
JobTimeoutUSec=infinity
JobTimeoutAction=none
systemctl cat user@1000

# /lib/systemd/system/user@.service
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=User Manager for UID %i
After=systemd-user-sessions.service

[Service]
User=%i
PAMName=systemd-user
Type=notify
ExecStart=-/lib/systemd/systemd --user
Slice=user-%i.slice
KillMode=mixed
Delegate=yes
TasksMax=infinity
TimeoutStopSec=120s
Karthago ★★ ()
Ответ на: комментарий от intelfx

Разобрался. Дело в том, что у меня была одна очень навязчивая ошибка: система вырубалась через раз по две минуты с надписью «A stop job is running». Я долго искал рабочее решение и в итоге остановился на этом. Отсюда и 10 секунд.

Закоментил все обратно, ребутнулся — все работает. Хотя что делать с той хренью если она опять всплывет — хз.

Karthago ★★ ()
Ответ на: комментарий от Karthago

Я долго искал рабочее решение и в итоге остановился на этом

Ах да, там же ещё и дефолты есть. Забыл про них %)

система вырубалась через раз по две минуты с надписью «A stop job is running»

Этот симптом действительно периодически всплывает, причём каждый раз с разной причиной. Раньше в systemd было несколько известных багов (прямо настоящих багов в логике), которые к этому приводили, но их, насколько могу судить, все поправили. Если у тебя воспроизводится, то имеет смысл включить debug-shell.service и, когда опять возникнет, перейти в девятую ядерную консоль (Ctrl+Alt+F9) и попытаться собрать всю возможную информацию (запущенные процессы, активные задачи в systemd-транзакции, дерево процессов под юзерским systemd).

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.