Hallo,
ich weiß, dass es einige Google-Einträge zu dem Thema gibt, ein Skript beim Start des Systems ausführen zu lassen.
Mein Problem: Das scheint mir alles sehr umständlich und kompliziert. Ich möchte eigentlich nichts weiter als z.B. mein Firewall-Skript und meine openVPN-Verbindungen beim Systemstart ausführen.
Gibt es dafür eine einfachere Möglichkeit? Früher genügte es, Verknüpfungen in den passenden Runleveln anzulegen...
Skript beim Start ausführen
Re: Skript beim Start ausführen
Bei der Installation von OpenVPN wird bereits eine Starunit für systemd angelegt, die allerdings zunächst nicht aktiviert ist.mod3 hat geschrieben:Mein Problem: Das scheint mir alles sehr umständlich und kompliziert. Ich möchte eigentlich nichts weiter als z.B. mein Firewall-Skript und meine openVPN-Verbindungen beim Systemstart ausführen.
Zum aktivieren muß man nur systemctl enable openvpn.service aufrufen, und Openvpn startet automatisch beim nächsten Boot. Ausserdem gibt es unter /etc/default noch eine Steuerdatei für OpenVPN, in die eingetragen werden kann/muß, welche VPNs gestartet werden sollen.
Für dein Firewallskript kannst du dir eine eigene Systemunit bauen, die dann von systemd aufgerufen wird. Die Startunit gehören in das Verzeichnis /lib/systemd/system und so eine Unit könnte folgendermassen aussehen:
lege eine neue Datei /lib/systemd/system/firewall.service mit folgendem Inhalt an:
Code: Alles auswählen
[Unit]
Description=Firewall
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/pfad/zu/deinen/Firewall.skript start
ExecStop=/pfad/zu/deinen/Firewall.skript stop
[Install]
WantedBy=multi-user.target
Alternativ kannst du dein Firewallskript auch über die Hooks in /etc/network/if-up.d staten lassen.
Re: Skript beim Start ausführen
Sollten eigene Units nicht unter /etc statt /lib landen?
Re: Skript beim Start ausführen
Ja.niemand hat geschrieben:Sollten eigene Units nicht unter /etc statt /lib landen?
Re: Skript beim Start ausführen
Super, vielen Dank schonmal für den Tipp mit openVPN!
Dann nutze ich also die obige Anleitung, schreibe die Dateien aber nach /etc/, statt nach /lib?
Dann nutze ich also die obige Anleitung, schreibe die Dateien aber nach /etc/, statt nach /lib?
Re: Skript beim Start ausführen
Bei der Installation von OpenVPN wird haufenweise Zeugs installiert, was man eigentlich nicht benötigt. Letzten Endes braucht es nur das Binary und Deine Confs. Ich würde also darauf verzichten, OpenVPN mit dem alten /etc/init.d/script zu starten und stattdessen einfach eine explizite Unit erstellen, die den OpenVPN-Server bei Systemstart startet.mod3 hat geschrieben:Super, vielen Dank schonmal für den Tipp mit openVPN!
Dann nutze ich also die obige Anleitung, schreibe die Dateien aber nach /etc/, statt nach /lib?
Code: Alles auswählen
nano /etc/systemd/system/openvpn-server-udp-1194.service
Code: Alles auswählen
[Unit]
Description=thlu:openvpn.service OpenVPN Server UDP/1194
After=network.target
[Service]
Type=forking
PIDFile=/var/run/openvpn/server_udp_1194.pid
ExecStartPre=/bin/mkdir -p /var/run/openvpn
ExecStart=/usr/local/sbin/openvpn --daemon --writepid /var/run/openvpn/server_udp_1194.pid --status /var/run/openvpn/server_udp_1194.status 60 --cd /etc/openvpn/ --config /etc/openvpn/server_udp_1194.conf
KillMode=process
[Install]
WantedBy=multi-user.target
Code: Alles auswählen
nano /etc/systemd/system/set-iptables.service
Code: Alles auswählen
[Unit]
Description=thlu:set-iptables.service: Set local iptables
DefaultDependencies=no
After=basic.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/set-c-ip4tables start
ExecStart=/usr/local/bin/set-c-ip6tables start
[Install]
WantedBy=multi-user.target