
Probé con systemctl y con crontab sin éxito.
aquí está el guión:
#!/bin/bash
cyberghostvpn --country-code AU --city Brisbane --connect
derechos :
-rwxr-xr-x 1 pat pat 71 nov 28 13:04 ghoststart.sh
mi crontab que he ejecutado de esta manera:sudo crontab -e
@reboot sleep 120; /home/pat/Documents/cyberghost/ghoststart.sh
Puedo ejecutar el script en la terminal sin problemas:sudo sh ghoststart.sh
cron de registro del sistema:
Nov 28 13:17:57 mrpotato cron[679]: (CRON) INFO (pidfile fd = 3)
Nov 28 13:17:57 mrpotato cron[679]: (CRON) INFO (Running @reboot jobs)
Nov 28 13:17:59 mrpotato CRON[726]: (root) CMD (sh /home/pat/Documents/cyberghost/ghoststart.sh)
Nov 28 13:24:04 mrpotato cron[658]: (CRON) INFO (pidfile fd = 3)
Nov 28 13:24:04 mrpotato cron[658]: (CRON) INFO (Running @reboot jobs)
Parece que cron dejó de funcionar después de las 13:24:04, porque lo intenté después de eso.
edición 2: basado enesteYo he tratado
root@mrpotato:/var/spool/cron/crontabs# /bin/sh -c "(export PATH=/usr/bin:/bin; /home/pat/Documents/cyberghost/ghoststart.sh </dev/null)"
Prepare OpenVPN connection ...
Please Install "openvpn" first!
me da el mismo error si no fuera root, obviamente openvpn esta instalado
3ra edición:
Si hago esto no me sale ningún error.
pat@mrpotato:~$ sudo /bin/sh -c "(export PATH=/usr/bin:/bin; /home/pat/Documents/cyberghost/ghoststart.sh </dev/null)"
pero si hago esto obtengo uno:
root@mrpotato:~# /bin/sh -c "(export PATH=/usr/bin:/bin; /home/pat/Documents/cyberghost/ghoststart.sh </dev/null)"
el error es:
Traceback (most recent call last):
File "cyberghostvpn.py", line 580, in <module>
File "cyberghostvpn.py", line 346, in main
File "libs/config.py", line 45, in __init__
File "libs/config.py", line 112, in readConfigFile
Exception: The config file "/home/root/.cyberghost/config.ini" does not exist!
[3845] Failed to execute script cyberghostvpn
config.ini existe en/home/pat/.cyberghost/
cron debe estar ejecutando el script como root y no con sudo... o algo así, el script obtiene el archivo del usuario que lo ejecuta... si eso tiene sentido.
¡No tengo idea de cómo resolver eso!
Respuesta1
Su ghoststart.sh
secuencia de comandos (o lo cyberghostvpn
que contiene) está intentando iniciar OpenVPN llamando al openvpn
ejecutable. Este ejecutable no se encuentra en $PATH
el script. Úselo command -v openvpn
en una terminal para ubicar la ruta del ejecutable.
Si su openvpn
ejecutable se encuentra en /usr/sbin
, puede escribir su programación crontab como
@reboot sleep 120 && PATH="$PATH:/usr/sbin" /home/pat/Documents/cyberghost/ghoststart.sh
Su "tercera edición" también indica que la herramienta está buscando un archivo de configuración en el directorio de inicio del usuario que inicia la herramienta. Dice que tiene este archivo en el directorio de inicio de pat
y no en el directorio de inicio de root
.
Tienes dos opciones aquí:
- Mueva el archivo de configuración a donde la herramienta espera encontrarlo, o
- Dígale a la herramienta dónde
HOME
está.
La segunda opción se podría hacer modificando el trabajo cron para decir
@reboot sleep 120 && HOME=/home/pat PATH="$PATH:/usr/sbin" /home/pat/Documents/cyberghost/ghoststart.sh
Respuesta2
root@mrpotato:/var/spool/cron/crontabs# /bin/sh -c "(export PATH=/usr/bin:/bin;/home/pat/Documents/cyberghost/ghoststart.sh
¿Dónde está ubicado su binario openvpn? En mi Debian, es /usr/sbin
lo que no forma parte de la variable PATH que pasaste a tu script... lo que explica el error que encontraste.