Como executo uma aplicação gráfica automaticamente na inicialização com privilégios de root?

0

Eu modifiquei o arquivo sudoers com o sudo visudo e adicionei 2 linhas a ele:

tiamo ALL = NOPASSWD: /home/tiamo/myscript.sh
tiamo ALL = NOPASSWD: /usr/bin/command

Eu adicionei meu script em "Startup Applications" da seguinte forma: bash -c "sleep 1m;gksu /home/tiamo/myscript.sh"

myscript.sh tem esta aparência:

do some non sudo stuff
do sudo command
while true
do
launch a program
sleep 15m
kill the program
done

Depois que eu reinicio o Ubuntu eu abro um terminal e uso pgrep myscript , ele revela que está rodando e seu pid. No entanto, o programa que ele deve iniciar não está ativo, então eu suponho que ele fique preso no comando sudo que eu adicionei ao meu arquivo sudoers.

Qualquer pista porque fica preso?

RESOLVIDO da seguinte forma:

Adicionamos os comandos sudo ao meu /etc/rc.local. Inicie meu script em aplicativos de inicialização, como gnome-terminal -e ./myscript.sh . A saída do script agora é redirecionada para um novo terminal e é executada com êxito.

    
por iTiamo 08.05.2018 / 19:22

1 resposta

0

O arquivo sudoers parece bem.

O script provavelmente está bem, desde que nenhum dos comandos o esteja bloqueando. No entanto, se algum dos comandos também for scripts, você provavelmente desejará usar . script.sh .

Não tenho certeza se o comando bash é necessário. Normalmente, eu acho que é suficiente para o script ser executável com um #! adequado.

Existe também um problema potencial em executar programas gráficos como root. Pode ser necessário criar um arquivo ~/.xinitrc com o seguinte conteúdo:

#! /usr/bin/env bash
xhost +local:

Esta página contém algumas informações que você provavelmente achará úteis:

por xiota 08.05.2018 / 19:37