我有两个systemd要在启动时运行的脚本。
第一个 systemd 脚本启动 OpenVPN,然后执行一个 shell 脚本,将连接的 IP 写入文件vpn.env.
第二个 systemd 脚本启动传输并且应该绑定到vpn.env.
我的问题似乎是第二个 systemd 脚本的执行太“快”了,在 OpenVPN 可以启动和写入vpn.env.
问题:有没有办法给第二个脚本添加一个延迟,也许是几秒钟,让它等待环境文件被写入?
systemd OpenVPN 脚本
[Unit]
Description=VPN Custom Launch Connection
After=network.target
[Service]
Type=simple
ExecStart=/usr/sbin/openvpn --cd /etc/openvpn --config /etc/openvpn/vpn.conf
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
OpenVPN .sh 脚本,在程序启动时执行
printenv > /etc/openvpn/vpn.env
Run Code Online (Sandbox Code Playgroud)
systemd 传输脚本
[Unit]
Description=Transmission BitTorrent Daemon Under VPN
After=network.target vpn.service
Requires=vpn.service
[Service]
User=transmission
Type=notify
EnvironmentFile=/etc/openvpn/vpn.env
ExecStart=/usr/bin/transmission-daemon -f --log-error --config-dir /opt/transmission --bind-address-ipv4 $ifconfig_local --rpc-bind-address 0.0.0.0 --no-portmap
ExecReload=/bin/kill -s HUP $MAINPID
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)