
Ich habe es erfolglos mit systemctl und crontab versucht.
hier ist das Skript:
#!/bin/bash
cyberghostvpn --country-code AU --city Brisbane --connect
Rechte:
-rwxr-xr-x 1 pat pat 71 nov 28 13:04 ghoststart.sh
meine Crontab, die ich folgendermaßen ausgeführt habe:sudo crontab -e
@reboot sleep 120; /home/pat/Documents/cyberghost/ghoststart.sh
ich kann das Skript problemlos im Terminal ausführen:sudo sh ghoststart.sh
Syslog-Cron:
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)
scheint, als ob cron nach 13:24:04 aufgehört hat zu funktionieren, weil ich danach noch einen Versuch gemacht habe
Bearbeitung 2: basierend aufDasIch habe versucht
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!
es gibt den gleichen Fehler, wenn ich kein Root bin, offensichtlich ist OpenVPN installiert
3. Bearbeitung:
wenn ich das mache, bekomme ich keine Fehlermeldung.
pat@mrpotato:~$ sudo /bin/sh -c "(export PATH=/usr/bin:/bin; /home/pat/Documents/cyberghost/ghoststart.sh </dev/null)"
aber wenn ich das mache, bekomme ich eins:
root@mrpotato:~# /bin/sh -c "(export PATH=/usr/bin:/bin; /home/pat/Documents/cyberghost/ghoststart.sh </dev/null)"
der Fehler ist:
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 existiert in/home/pat/.cyberghost/
cron muss das Skript als Root ausführen und nicht mit sudo … oder so ähnlich. Das Skript ruft die Datei vom laufenden Benutzer ab … falls das Sinn ergibt.
ich habe keine Ahnung, wie ich das lösen soll!
Antwort1
Ihr ghoststart.sh
Skript (oder das cyberghostvpn
darin enthaltene Element) versucht, OpenVPN durch Aufrufen der openvpn
ausführbaren Datei zu starten. Diese ausführbare Datei wurde im $PATH
Skript nicht gefunden. Verwenden Sie es command -v openvpn
in einem Terminal, um den Pfad der ausführbaren Datei zu finden.
Wenn sich Ihre openvpn
ausführbare Datei in befindet /usr/sbin
, können Sie Ihren Crontab-Zeitplan wie folgt schreiben:
@reboot sleep 120 && PATH="$PATH:/usr/sbin" /home/pat/Documents/cyberghost/ghoststart.sh
Ihre „dritte Bearbeitung“ zeigt auch an, dass das Tool nach einer Konfigurationsdatei im Home-Verzeichnis des Benutzers sucht, der das Tool startet. Sie sagen, Sie haben diese Datei im Home-Verzeichnis von pat
und nicht im Home-Verzeichnis von root
.
Sie haben hier zwei Möglichkeiten:
- Verschieben Sie die Konfigurationsdatei dorthin, wo das Tool sie erwartet, oder
- Sagen Sie dem Werkzeug, wo
HOME
es ist.
Die zweite Möglichkeit besteht darin, den Cron-Job so zu ändern, dass er
@reboot sleep 120 && HOME=/home/pat PATH="$PATH:/usr/sbin" /home/pat/Documents/cyberghost/ghoststart.sh
Antwort2
root@mrpotato:/var/spool/cron/crontabs# /bin/sh -c "(export PATH=/usr/bin:/bin;/home/pat/Documents/cyberghost/ghoststart.sh
Wo befindet sich Ihre OpenVPN-Binärdatei? Auf meinem Debian befindet sie sich in einem Verzeichnis, /usr/sbin
das nicht Teil der PATH-Variable ist, die Sie an Ihr Skript übergeben haben. Dies erklärt den aufgetretenen Fehler.