我工作的一个systemd
.service
是应该启动脚本后CIFS网络位置通过安装/etc/fstab
于/mnt/
在启动时。
该脚本首先等待 OpenVPN 依赖脚本启动,但我也希望它等待挂载完成。
/etc/systemd/system/my-daemon.service:
[Unit]
Description=Launch My Daemon
After=network.target vpn-launch.service
Requires=vpn-launch.service
Run Code Online (Sandbox Code Playgroud)
我试图添加systemd.mount
到行:After=network.target vpn-launch.service systemd.mount
,但它没有给出我希望的结果。
我想安装该命令locate
,该命令可通过sudo apt-get install
mlocate
.
但是,我首先运行sudo apt-get install
locate
它似乎安装了其他东西。
locate <package>
但是,键入命令似乎会调用mlocate
.
什么是包locate
,可以(应该)安全地删除它吗?
我有两个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 …
Run Code Online (Sandbox Code Playgroud)