
Lange Rede, kurzer Sinn: Ich habe diese SystemD-Einheit für meinen Softether VPN-Client:
[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
Nun fehlt nur noch der Anruf dhclient vpn_vpn
um die Verknüpfung fertigzustellen.
Wie automatisiere ich das am besten? Soweit ich weiß, gibt es einen One-Shot-Typ für Systemd-Einheiten ... aber ehrlich gesagt habe ich bis auf ein paar Ausnahmen die meisten meiner Einheiten kopiert und eingefügt.
Danke und einen schönen Tag! :)
Antwort1
Wenn Sie den Typ des Dienstes von forking
in ändern simple
, können Sie die ExecStartPost=
Zeile zum Ausführen eines Befehls hinzufügen, nachdem der Prozess gestartet wurde.
Oder Sie könnten eine weitere .service-Datei für den DHCP-Client von und Set schreiben After=softether-client.service
oder wie auch immer Sie Ihren Client-Dienst genannt haben. Erstellen Sie dann den Dienst Type=oneshot
und ExecStart=<path_to_dhcp_client_executable> vpn_vpn
.
Überprüf densystemd.serviceUndsystemd.unitDokumentation für weitere Informationen.
Ich bin mir allerdings nicht 100 % sicher. Vielleicht kann jemand Kompetenteres eine bessere Antwort geben.
Ich hoffe das hilft !