Eu venho pesquisando isso e a resposta da 'grewity' parece desatualizada. Agora você pode configurar serviços do usuário com o systemd que é executado como parte da sessão do usuário. Eles podem ter o conjunto DISPLAY e XAUTHORITY (atualmente em Arch e Debian Stretch).
Isso faz sentido em relação às recomendações anteriores de uso de arquivos de autostart da área de trabalho, já que você obtém o gerenciamento de processos da mesma forma que faria com um aplicativo no nível do sistema (reiniciar, etc).
Os melhores documentos agora são os wiki do Arch; Systemd / User
Versão do TLDR;
- Crie o arquivo desejado * .service em ~ / .config / systemd / user /
- Executar 'systemctl --user enable [service]' (excluir sufixo .service)
- Opcionalmente, execute 'systemctl --user start [service]' para iniciar agora
- Use 'systemctl - status do usuário [serviço]' para verificar como está sendo feito
Alguns outros comandos úteis.
- 'systemctl - user-list-unit-files' - exibir todos os blocos de usuários
- 'systemctl --user daemon-reload' - se você editar um arquivo .service
- Mais tarde ...
Eu fiz o upgrade e convertei a maioria dos daemons da minha sessão para os arquivos systemd .service. Então eu posso adicionar algumas notas adicionais.
Não havia gancho padrão para executar os serviços no login, portanto você deve acioná-lo por conta própria. Eu faço isso do meu arquivo ~ / .xsession.
systemctl --user import-environment PATH DBUS_SESSION_BUS_ADDRESS
systemctl --no-block --user start xsession.target
A primeira linha importa algumas variáveis de ambiente para a sessão do usuário systemd e a segunda inicia o destino. Meu arquivo xsession.target;
[Unit]
Description=Xsession running
BindsTo=graphical-session.target
Meu xbindkeys.service como um exemplo.
[Unit]
Description=xbindkeys
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/xbindkeys -n -f ${HOME}/projects/dotfiles/.xbindkeysrc
Restart=always
[Install]
WantedBy=xsession.target