
Estoy intentando automatizar la conexión de un túnel VPN mediante cron al iniciar el sistema.
Tengo un script bash activado por cron de raíces sudo crontab -e
(porque algunos otros comandos necesitan elevación).
Estaría bien usando piactl (cli), pero cuando intento conectarme aparece un mensaje que dice que es necesario iniciar el cliente, así que...
Uno de los pasos que me gustaría realizar es iniciar una aplicación GUI (pia -client) en la pantalla de mis usuarios no root.
El siguiente comando funciona directamente desde la terminal:
sudo su
runuser -l $username -c 'DISPLAY=:0 /opt/piavpn/bin/pia-client &> /dev/null &'
Sin embargo, cuando pongo eso en mi script no funciona.
El script es ejecutable chmod +x /path/to/script.sh
y otros comandos del mismo script están funcionando.
¿Alguien tiene una solución aquí?
Respuesta1
Esto es vergonzoso porque ya hice esta pregunta exacta hace solo unos días. Ni siquiera me di cuenta...
La solución es agregar la ruta completa al comando ya que el comando no está en el cron PATH
.
Cambió el código a:
sudo su
/sbin/runuser -l $username -c 'DISPLAY=:0 /opt/piavpn/bin/pia-client &> /dev/null &'
Fuente/crédito:El comentario de @steeldriver sobre esta pregunta