私は成功せずにsystemctlとcrontabを使ってみました。
スクリプトは次のとおりです。
#!/bin/bash
cyberghostvpn --country-code AU --city Brisbane --connect
右:
-rwxr-xr-x 1 pat pat 71 nov 28 13:04 ghoststart.sh
私のcrontabは次のように実行されます。sudo crontab -e
@reboot sleep 120; /home/pat/Documents/cyberghost/ghoststart.sh
問題なく端末でスクリプトを実行できます。sudo sh ghoststart.sh
システムログクローン:
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)
cronが13:24:04以降に動作を停止したようです。その後、私が試したからです。
編集2:ベースこれ頑張りました
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!
ルートでない場合、同じエラーが発生します。明らかにopenvpnがインストールされています。
3番目の編集:
これによりエラーは発生しません。
pat@mrpotato:~$ sudo /bin/sh -c "(export PATH=/usr/bin:/bin; /home/pat/Documents/cyberghost/ghoststart.sh </dev/null)"
しかし、これを行うと、次のような結果が得られます。
root@mrpotato:~# /bin/sh -c "(export PATH=/usr/bin:/bin; /home/pat/Documents/cyberghost/ghoststart.sh </dev/null)"
エラーは次のとおりです。
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 は次の場所にあります。/home/pat/.cyberghost/
cronはsudo ...または同様のものを使用する代わりにスクリプトをrootとして実行する必要があります。スクリプトは実行中のユーザーからファイルを取得します。
この問題を解決する方法がわかりません!
答え1
スクリプト(またはその中にあるもの)がghoststart.sh
実行可能ファイルを呼び出してOpenVPNを起動しようとしますcyberghostvpn
。スクリプトに実行可能ファイルが見つかりませんopenvpn
。実行可能ファイルのパスを見つけるには、$PATH
端末で使用してください。command -v openvpn
openvpn
実行可能ファイルがにある場合は、/usr/sbin
crontabスケジュールを次のように作成できます。
@reboot sleep 120 && PATH="$PATH:/usr/sbin" /home/pat/Documents/cyberghost/ghoststart.sh
また、「3番目の編集」は、ツールがツールを起動したユーザーのホームディレクトリで設定ファイルを探していることを示します。あなたはこのファイルがホームディレクトリではpat
なくホームディレクトリにあると言いましたroot
。
これには2つのオプションがあります。
- ツールで見つかると予想される場所に構成ファイルを移動するか、
- ツールにそれがどこにあるかを教えてください
HOME
。
2番目のオプションは、cronジョブを変更することで実行できます。
@reboot sleep 120 && HOME=/home/pat PATH="$PATH:/usr/sbin" /home/pat/Documents/cyberghost/ghoststart.sh
答え2
root@mrpotato:/var/spool/cron/crontabs# /bin/sh -c "(エクスポート PATH=/usr/bin:/bin;/home/pat/Documents/cyberghost/ghoststart.sh
openvpnバイナリはどこにありますか?私のDebianでは、/usr/sbin
スクリプトに渡すPATH変数の一部ではありません。これは発生するエラーを説明します。