简短描述,我正在寻找什么:
我希望有一个独立的 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。
作为解决方法我在需要时使用别名来启动服务。