Systemd Serviço para Offlineimap + gpg encriptado O tmux interno do PW funciona manualmente após o início do sistema, mas não de forma automática

2

Breve descrição, o que procuro:

Eu quero ter uma sessão do tmux desanexada iniciada automaticamente como um serviço de usuário do systemd. Dentro disso, o offlineimap deve iniciar e descriptografar minhas credenciais de login. A variante gráfica do pinentry deve me pedir a senha para descriptografar minhas credenciais de login, quando eu anexar à sessão. Para gerenciar minhas credenciais de login, desejo usar o programa pass .

O que eu tenho até agora:

O Comportamento desejado funciona perfeitamente e de forma reproduzível (a partir da reinicialização), quando eu inicio o serviço do usuário depois de fazer login no meu sistema.

Mas infelizmente não funciona quando eu faço "symstemctl --user enable mail.service" e reinicializa:

$ 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

Eu não tenho ideia, o que eu poderia analisar ou qual poderia ser o motivo. Alguém tem dicas de como resolver esse problema?

Muito obrigado!

Meu mail.service

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

meu 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

Meu ~ / .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
    
por toogley 05.06.2016 / 17:29

1 resposta

0

Parece que o que eu pesquisei não é possível no momento.

Inicialmente eu interpretei mal a descrição de graphical.target - achei que esse destino seria definido após o login ter ocorrido. Em vez disso, apenas configura a tela de login (por exemplo, lightdm). E para "logado na área de trabalho gráfica", atualmente não existe nenhum alvo.

O Wiki ArchLinux descreve um método de iniciar o gerenciador de janelas por serviços do usuário systemd - que não funciona para mim, porque depende de quando o usuário faz o login no lightdm.

Como solução alternativa , uso um alias para iniciar meu serviço quando preciso.

    
por 06.06.2016 / 19:01