Os serviços do sistema não podem e não devem interagir com as sessões do usuário. A suposição de que sempre existe exatamente uma sessão gráfica nunca foi verdadeira no Unix (o X11 era multiusuário desde o início) e nem sequer é verdade no Windows (após o NT 4.0 ter introduzido os Serviços de Terminal e o XP adicionado a Troca Rápida de Usuário). / p>
Em outras palavras, um serviço do sistema não sabe qual display X11 ele deve usar; não tem as credenciais certas mesmo se você codificar :0
(somente o proprietário da sessão sabe o valor correto de $ XAUTHORITY - sendo que o root não concede nenhum poder mágico); e muitas vezes será iniciado automaticamente antes qualquer display do X11 aparecerá, mesmo se você codificar /home/me/.Xauthority
.
Isso significa que scripts como o seu devem ser iniciados dentro da sessão gráfica - através de ~/.config/autostart/*.desktop
(a especificação inicial do XDG), ou através de ~/.xprofile
(um script de shell regular). p>
# ~/.config/autostart/monitor.desktop [Desktop Entry] Name=Activity monitor Type=Application Exec=nm-applet