システムの起動時にVPNを自動的に起動し、ネットワークが再接続されたとき(何らかの理由で接続が切断された後)に再接続したいと思います。
接続コマンドはprotonvpn-cli connect -f
切断するコマンドは次のとおりです。protonvpn-cli disconnect
auto_vpn.service
inというファイルが~/.config/systemd/user
次の内容で作成されました。
[Unit]
Description=Connect to Proton-VPN
Requires=graphical-session.target
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/protonvpn-cli connect -f
ExecStop=/usr/bin/protonvpn-cli disconnect
Restart=on-failure
RestartSec=30
StartLimitInterval=350
StartLimitBurst=10
RemainAfterExit=yes
[Install]
WantedBy=graphical-session.target
次に、次を実行します。
systemctl --user daemon-reload
systemctl --user start auto_vpn.service
systemctl --user enable auto_vpn.service
今問題は、サービスが動作しているかです。ただし、コンピュータを再起動するとサービスは開始されません(有効になっていても)。また、ネットワークが再接続されたとき(何らかの理由で接続が切断された後)に再起動するかどうかはわかりません。
答え1
したがって、私がsystemdで使用する多くのオプションに慣れていない場合でも、次の変更を加えてシステムを動作させ、そのままにすることができます。
BindsTo=network.service
役に立たないようで削除しました。私は必要なくこれらのことを実行しました。
Type=simple
ExecStart=/usr/bin/protonvpn-cli connect -f
ExecStop=/usr/bin/protonvpn-cli disconnect
protonvpn-cli
ただし、ディレクトリの下に名前付きエントリがあることを確認してください/usr/bin
。インストール方法によっては異なる場所にある場合があります。
この場合は、whereis
パッケージの検索に使用します。
答え2
auto_vpn.service
~/.config/systemd/user
次の内容でinという名前のファイルを作成します。
[Unit]
Description=Connect to Proton-VPN
BindsTo=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/protonvpn-cli connect -f
ExecStop=/usr/bin/protonvpn-cli disconnect
Restart=on-failure
RestartSec=30
StartLimitInterval=350
StartLimitBurst=10
RemainAfterExit=yes
[Install]
WantedBy=xsession.target
次に、次を実行します。
systemctl --user daemon-reload
systemctl --user start auto_vpn.service
Run `systemctl --user enable auto_vpn.service
それはすべてです。