我已经编写了一个 systemd 文件来使用特定的配置文件启动我的 VPN 服务。我希望能够做的是在每次服务启动时将此文件替换为随机选择的配置文件。
到目前为止,我已经尝试使用
ExecStartPre=cp -f `ls /etc/openvpn/ovpn_udp/au* | shuf -n 1` /etc/openvpn/%i.conf
将随机选取的文件复制到指定的配置文件。我尝试过的一些替代方法是
- 使用 rsync -c 而不是 cp
- 整个 ExecStartPre 命令周围的双引号
- 逃避`
最后我还尝试了以下 ExecStart 来
ExecStart=/usr/sbin/openvpn --config `ls /etc/openvpn/ovpn_udp/au* | shuf -n 1`
都没有效果。
目前systemd文件如下
[Unit]
Description=OpenVPN Robust And Highly Flexible Tunneling Application On %I
After=network.target
[Service]
Type=notify
PrivateTmp=true
ExecStartPre=cp -f `ls /etc/openvpn/ovpn_udp/au* | shuf -n 1` /etc/openvpn/%i.conf
ExecStart=/usr/sbin/openvpn --config /etc/openvpn/%i.conf
[Install]
WantedBy=multi-user.target
我希望在每次启动服务之前更改配置文件,但到目前为止我没有看到任何错误或配置文件被替换。
任何帮助将不胜感激。
谢谢