长话短说:我的 Softether VPN 客户端有这个 SystemD 单元:
[Unit]
Description=SoftEther VPN Client
After=network.target
Wants=softethervpn-server.service
[Service]
Type=forking
ExecStart=/srv/vpnserver/vpnclient start
ExecStop=/srv/vpnserver/vpnclient stop
[Install]
WantedBy=multi-user.target
现在只差调用一次dhclient vpn_vpn
就可以完成链接了。
我如何才能最好地实现自动化?据我所知,Systemd 单元有一个一次性类型...但老实说,除了少数例外,我复制粘贴了大部分内容。
感谢,并有一个愉快的一天! :)
答案1
如果将服务类型从 更改forking
为simple
,则可以添加ExecStartPost=
行以在进程启动后执行命令。
或者,您可以为 dhcp_client 编写另一个 .service 文件并设置After=softether-client.service
或无论您如何调用客户端服务。然后创建服务Type=oneshot
和ExecStart=<path_to_dhcp_client_executable> vpn_vpn
。
检查systemd.service和systemd.unit文档以获取更多信息。
不过我对此不是 100% 确定。也许更有能力的人可能会给出更好的答案。
我希望这有帮助 !