Offlineimap + gpg暗号化されたPW内部tmux Systemdサービスは、システム起動後に手動で機能しますが、自動的には機能しません。

Offlineimap + gpg暗号化されたPW内部tmux Systemdサービスは、システム起動後に手動で機能しますが、自動的には機能しません。

私が探しているものの簡単な説明:

システムユーザーサービスで別のtmuxセッションを自動的に開始したいと思います。そこからオフラインimapは私のログイン資格情報を起動し、パスワードを復号化するようになっています。セッションに接続すると、pinentryのグラフィックバリアントはログイン資格情報を復号化するために使用するパスワードを要求します。ログイン資格情報を管理するためにこのプログラムを使用したいと思います。渡す

私がこれまでに得たもの:

システムにログインした後でユーザーサービスを起動すると、必要な動作が完全に再現可能に機能します(再起動後)。

しかし、残念ながら "symstemctl --userを有効にする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など)。現在、「グラフィックデスクトップにログオンする」という目標はありません。

アーチLinuxウィキウィンドウマネージャをシステムユーザーサービスとして起動する方法について説明します。これは、ユーザーがlightdmにログインする時点によって異なり、私にとってはうまくいきませんでした。

解決策として必要に応じてエイリアスを使用してサービスを開始します。

おすすめ記事