
Короче говоря: у меня есть этот модуль SystemD для моего VPN-клиента Softether:
[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=
строку для выполнения команды после запуска процесса.
Или вы можете написать другой файл .service для dhcp_client и установить After=softether-client.service
или как вы там назвали свою клиентскую службу. Затем сделайте службу Type=oneshot
и ExecStart=<path_to_dhcp_client_executable> vpn_vpn
.
Проверитьsystemd.сервисиsystemd.единицадокументацию для получения более подробной информации.
Хотя я не уверен в этом на 100%. Может быть, кто-то более компетентный даст лучший ответ.
Надеюсь, это поможет !