Offlineimap + gpg 加密 PW 内部 tmux 的 Systemd 服务在系统启动后手动工作,但不是自动工作

Offlineimap + gpg 加密 PW 内部 tmux 的 Systemd 服务在系统启动后手动工作,但不是自动工作

简短描述,我正在寻找什么:

我希望有一个独立的 tmux 会话作为 systemd 用户服务自动启动。在其中,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("[email protected]")
ssl = yes
type = IMAP
remotehost = imap.mailbox.org
remoteuser = [email protected]
sslcacertfile = /etc/ssl/certs/ca-bundle.crt
keepalive = 60
holdconnectionopen = yes

答案1

看来我正在寻找的东西目前是不可能的。

最初我误读了描述graphical.target- 我认为这个目标会在登录发生后设置。相反,它只是设置登录屏幕(例如 lightdm)。对于“登录图形桌面”目前不存在目标。

ArchLinux 维基描述了一种按 systemd 用户服务启动窗口管理器的方法 - 这对我不起作用,因为它取决于用户何时登录 lightdm。

作为解决方法我在需要时使用别名来启动服务。

相关内容