LINUX.ORG.RU

Принцип работы юзерского экземпляра

 


0

2

Привет. Убил несколько часов. А всё потому, что ожидал поведения - новый юзерский системд экземпляр - начинаем с чистого листа для пользовательских юнитов. Т.е. если есть юнит:

$ cat ~/.config/systemd/user/my_check_mail.service
[Unit]
  Description=Check Mail Service
[Service]
  Type=oneshot
  ExecStart=sh -c "echo 'tick' >> /tmp/212"
[Install]
  WantedBy=default.target

$ ~/.config/systemd/user $ systemctl --user get-default
default.target

$ systemctl --user list-dependencies default.target
default.target
● ├─my_check_mail.service
● └─basic.target
●   ├─paths.target
●   ├─sockets.target
●   │ ├─dbus.socket
●   │ ├─dirmngr.socket
●   │ ├─gpg-agent-browser.socket
●   │ ├─gpg-agent-extra.socket
●   │ ├─gpg-agent-ssh.socket
●   │ ├─gpg-agent.socket
●   │ └─p11-kit-server.socket
●   └─timers.target
●     └─my_check_mail.timer

После enable юнита и выхода из логин шеллов (тупо в getty) с последующим логином в юзера (т.е. происходит запуск юзерского системд), это не приводит к запуску моего сервиса my_check_mail.service, он стартует только после перезагрузки. Такое поведение явилось для меня очень странным и неожиданным. Можно ли настроить сервис так, чтобы он начинал все заново при перезапуске пользовательского инстанса (т.е. системный не перезагружается)? Можно ли настроить весь системд так, чтобы это условие соблюдалось для всех сервисов (т.е. любые состояние не переживал перезагрузку экземпляра с пид != 1)? Речь лишь о юзерских юнитов, т.к. перезагрузка системного инстанса == перезагрузке системы, естественно.

★★
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.