
Tentei com systemctl e com crontab sem sucesso.
aqui está o roteiro:
#!/bin/bash
cyberghostvpn --country-code AU --city Brisbane --connect
direitos :
-rwxr-xr-x 1 pat pat 71 nov 28 13:04 ghoststart.sh
meu crontab que executei desta maneira:sudo crontab -e
@reboot sleep 120; /home/pat/Documents/cyberghost/ghoststart.sh
posso executar o script no terminal sem problemas:sudo sh ghoststart.sh
cron do syslog:
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 o cron parou de funcionar depois das 13:24:04, porque eu fiz uma tentativa depois disso
edição 2: com base emesseeu tentei
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 dá o mesmo erro se eu não fosse root, obviamente o openvpn está instalado
3ª edição:
se eu fizer isso, não recebo nenhum erro.
pat@mrpotato:~$ sudo /bin/sh -c "(export PATH=/usr/bin:/bin; /home/pat/Documents/cyberghost/ghoststart.sh </dev/null)"
mas se eu fizer isso eu recebo um:
root@mrpotato:~# /bin/sh -c "(export PATH=/usr/bin:/bin; /home/pat/Documents/cyberghost/ghoststart.sh </dev/null)"
o erro é:
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 em/home/pat/.cyberghost/
cron deve estar executando o script como root e não com sudo... ou algo parecido, o script obtém o arquivo do usuário em execução... se isso faz sentido.
não tenho ideia de como resolver isso!
Responder1
Seu ghoststart.sh
script (ou cyberghostvpn
algo dentro dele) está tentando iniciar o OpenVPN chamando o openvpn
executável. Este executável não foi encontrado no $PATH
script. Use command -v openvpn
em um terminal para localizar o caminho do executável.
Se o seu openvpn
executável estiver localizado em /usr/sbin
, você pode escrever sua programação do crontab como
@reboot sleep 120 && PATH="$PATH:/usr/sbin" /home/pat/Documents/cyberghost/ghoststart.sh
Sua "3ª edição" também indica que a ferramenta está procurando um arquivo de configuração no diretório inicial do usuário que inicia a ferramenta. Você diz que tem esse arquivo no diretório inicial pat
e não no diretório inicial de root
.
Você tem duas opções aqui:
- Mova o arquivo de configuração para onde a ferramenta espera encontrá-lo ou
- Diga à ferramenta onde
HOME
está.
A segunda opção poderia ser feita modificando o cron job para dizer
@reboot sleep 120 && HOME=/home/pat PATH="$PATH:/usr/sbin" /home/pat/Documents/cyberghost/ghoststart.sh
Responder2
root@mrpotato:/var/spool/cron/crontabs# /bin/sh -c "(export PATH=/usr/bin:/bin;/home/pat/Documents/cyberghost/ghoststart.sh
Onde está localizado seu binário openvpn? No meu Debian, é /usr/sbin
onde não faz parte da variável PATH que você passou para o seu script... o que explica o erro que você encontrou.