
Estou tentando automatizar a conexão de um túnel VPN via cron na inicialização do sistema.
Eu tenho um script bash acionado pelo root cron sudo crontab -e
(porque alguns outros comandos precisam de elevação).
Eu ficaria bem usando piactl (cli), mas ao tentar conectar recebo uma mensagem dizendo que o cliente precisa ser iniciado, então...
Uma das etapas que gostaria de realizar é iniciar um aplicativo GUI (pia -client) na exibição de meus usuários não root.
O seguinte comando funciona diretamente do terminal:
sudo su
runuser -l $username -c 'DISPLAY=:0 /opt/piavpn/bin/pia-client &> /dev/null &'
No entanto, quando coloco isso em meu script, não funciona.
O script é executável chmod +x /path/to/script.sh
e outros comandos no mesmo script estão funcionando.
Alguém tem uma solução aqui?
Responder1
Isso é embaraçoso, pois já fiz exatamente essa pergunta há apenas alguns dias. Nem percebi...
A solução é adicionar o caminho completo para o comando, pois o comando não está no cron PATH
.
Alterei o código para:
sudo su
/sbin/runuser -l $username -c 'DISPLAY=:0 /opt/piavpn/bin/pia-client &> /dev/null &'
Fonte/crédito:Comentário de @steeldriver sobre esta questão