在启动 systemd 时启动 EasyVPN Snap VPN

在启动 systemd 时启动 EasyVPN Snap VPN

我有一个可用的 bash 脚本,可以使用可用的配置文件启动 easyvpn snap。我想在启动时运行此脚本,以便我的 ubuntu 核心设备在启动时自动连接到我的 vpn。

我的 Bash 脚本位于 /home/alexlanganke/ 中:

#!/bin/bash
echo "easy-openvpn.connect-server /home/alexlanganke/vpnconfig.ovpn" | bash

该文件自然已被执行,并且已自行测试成功。

我的 systemd 服务文件位于 /etc/systemd/system/ 中:

[Unit]
Description=VPN Autostart

[Service]
ExecStart=/home/alexlanganke/autostart_vpn.sh

[Install]
WantedBy=multi-user.target

Systemd 服务已启动并启用。您是否偶然发现我做错了什么或遗漏了什么?

journalctl -u 输出:

Mar 27 16:50:14 localhost.localdomain autostart_vpn.sh[1373]: bash: line 1: easy-openvpn.connect-server: command not found

在我看来,当通过 systemd 运行时,easyvpn 命令似乎无法被 bash 识别。路径错误?

答案1

出现问题的原因是 SystemD 以 root 身份运行。上面提到的 easyvpn 命令在系统范围内不为人所知。

可以通过将 bash 命令更改为以下内容来更正路径:

#!/bin/bash
echo "snap run easy-openvpn.connect-server /home/alexlanganke/vpnconfig.ovpn" | bash

在这里找到了有更好解释的解决方案: 如何在 snap 包中运行命令

答案2

terminal类型中nm-connection-editor,打开您希望使用 VPN 的有线/无线连接配置文件,然后编辑以下内容...将“default_openvpn”更改为您的 openvpn 连接脚本的路径/名称...

在此处输入图片描述

相关内容