Служба Systemd для автономной работы в режиме onimimap + gpg внутри Tmux работает вручную после запуска системы, но не автоматически

Краткое описание, что я ищу:

Я хочу, чтобы отдельная сессия tmux автоматически запускалась в качестве системной пользовательской службы. Внутри этого файла offlineimap должен запускать и расшифровывать мои учетные данные. Графический вариант pinentry должен задать мне пароль для дешифрования моих учетных данных для входа, когда я присоединяюсь к сеансу. Для управления моими учетными данными я хочу использовать пропуск программы.

Что у меня до сих пор:

Желаемое поведение работает отлично и воспроизводимо (начиная с перезагрузки), когда я запускаю службу пользователя после входа в систему.

Но, к сожалению, это не работает, когда я делаю «symstemctl –user enable mail.service» и перезагружается:

$ systemctl --user status mail ● mail.service - load offlineimap for all mail accounts inside tmux Loaded: loaded (/home/toogley/.dotfiles/systemd/user/mail.service; enabled; vendor preset: enabled) Active: inactive (dead) $ tmux attach-session -t mail can't find session mail 

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

Большое спасибо!

Мой почтовый сервис

 Description=load offlineimap for all mail accounts inside tmux After=network.target graphical.target Requires=gpg-agent.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/tmux new-session -d -s mail -n dev 'export GPG_TTY=$(tty) && \ offlineimap' ExecStop=/usr/bin/tmux kill-window -t mail ExecReload=/usr/bin/kill -s USR1 $(pgrep offlineimap) [Install] WantedBy=graphical.target 

мой gpg-agent.service:

 [Unit] Description=GnuPG private key agent IgnoreOnIsolate=true [Service] Type=forking ExecStart=/usr/bin/gpg-agent --daemon --homedir=%h/.gnupg ExecStop=/usr/bin/pkill gpg-agent Restart=on-abort [Install] WantedBy=default.target 

Мой ~ / .offlineimaprc

 [general] accounts = dev ui = ttyui metadata = ~/.dev_offimap pythonfile=~/.dotfiles/mutt/accounts/decrypt.py [Account dev] synclabels = yes localrepository = dev-local remoterepository = dev-remote status_backend = sqlite autorefresh = 1 quick = 10 [Repository dev-local] type = Maildir localfolders = ~/mail/dev/ [Repository dev-remote] remotepasseval = get_pass("toogley@mailbox.org") ssl = yes type = IMAP remotehost = imap.mailbox.org remoteuser = toogley@mailbox.org sslcacertfile = /etc/ssl/certs/ca-bundle.crt keepalive = 60 holdconnectionopen = yes 

Кажется, что то, что меня ищут, в настоящее время невозможно.

Первоначально я неправильно читал описание graphical.target – я думал, что эта цель будет установлена ​​после того, как логин произошел. Вместо этого он просто настраивает экран входа в систему (например, lightdm). А для «входа в графический рабочий стол» в настоящее время не существует никакой цели.

В ArchLinux Wiki описывается метод запуска диспетчера окон для системных пользовательских сервисов – что не работает для меня, потому что это зависит от того, когда пользователь входит в lightdm.

В качестве обходного пути я использую псевдоним для запуска моего сервиса, когда мне это нужно.