Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Dienst erst starten, wenn Netzwerk verbunden ist
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
flammenflitzer
Advocate
Advocate


Joined: 25 Nov 2003
Posts: 3534
Location: Berlin

PostPosted: Wed Nov 20, 2024 2:55 pm    Post subject: Dienst erst starten, wenn Netzwerk verbunden ist Reply with quote

Bei meinem Telekom-Anschluss gibt es ein Problem, welches auch zeitnah nicht behoben wird (langsame Verbindung mit Verbindungsunterbrechungen). Ich habe festgestellt (kann auch Zufall sein), das bei deaktiviertem nordvpnd.service Networkmanager schnell eine Verbindung zum kabelgebundenen Netzwerk herstellt. (Also systemctl enable NetworkManager, systemctl disable nordvpnd.service, systemctl disable NetworkManager-wait-online.service). Wenn ich nordvpn als Autostart aktiviere (systemctl enable nordvpnd.service) dauert es bis zu 10 Minuten, bis eine Verbindung aufgebaut ist. Starte ich nordvpn manuell, wenn NetworkManager eine Verbindung aufgebaut hat, funktioniert das Zusammenspiel besser. Gibt es eine Möglichkeit, das nordvpn verzögert wird, bis Networkmanager eine Verbindung aufgebaut hat? Oder gibt es nur die Variante den Service zeitversetzt zu starten. (ExecStartPre=/bin/sleep 30 wenn das richtig ist.) Laut der Seite ist das die einzige Möglichkeit: https://www.bastlerseite.at/service-unter-linux-verzoegert-starten/ Aber vielleicht hat jemand eine andere Lösung.
nordvpnd.service
Code:
[Unit]
Description=NordVPN Daemon
Requires=nordvpnd.socket
After=network-pre.target

[Service]
ExecStart=/usr/sbin/nordvpnd
NonBlocking=true
KillMode=process
Restart=on-failure
RestartSec=5
# centos7 RuntimeDirectory ignored
RuntimeDirectory=nordvpn
RuntimeDirectoryMode=0750
# User=root
Group=nordvpn

[Install]
WantedBy=default.target

Neu:
Code:
[Unit]
Description=NordVPN Daemon
Requires=nordvpnd.socket
After=network-pre.target

[Service]
ExecStartPre=/bin/sleep 30
ExecStart=/usr/sbin/nordvpnd
NonBlocking=true
KillMode=process
Restart=on-failure
RestartSec=5
# centos7 RuntimeDirectory ignored
RuntimeDirectory=nordvpn
RuntimeDirectoryMode=0750
# User=root
Group=nordvpn

[Install]
WantedBy=default.target
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1971
Location: Schweiz

PostPosted: Wed Nov 20, 2024 3:06 pm    Post subject: Reply with quote

Es gibt das "network-online.target" welches du als Abhängigkeit hinterlegen könntest.

Wenn der NetworkManager richtig eingerichtet ist sollte dieses Target erst auf den Status "active" wechseln wenn eine funktionierende Netzwerkverbindung aufgebaut wurde.
Weitere Informationen dazu findest du zum Beispiel in der Manpage: NetworkManager-wait-online.service.8
_________________
Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW


Last edited by schmidicom on Wed Nov 20, 2024 3:08 pm; edited 1 time in total
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1713

PostPosted: Wed Nov 20, 2024 3:07 pm    Post subject: Reply with quote

Siehe https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

TLDR:
Code:
After=network-online.target
Wants=network-online.target


einfügen könnte helfen.

Das sleep 30 ist für meinen geschmack etwas krude, aber sollte auch gehen.

EDIT:
Ich sehe gerade, dass du da After=network-pre.target stehen hast. Ich glaube, dass ist so nicht gedacht, laut der von mir verlinkten Seite ist network-pre.target dafür gedacht mit Before= verwendet zu werden, die Beschreibung klingt nicht so, als ob das mit After= gut funktioniert. Das solltest du am besten rausmachen und durch die zwei anderen Zeilen ersetzen.
Back to top
View user's profile Send private message
flammenflitzer
Advocate
Advocate


Joined: 25 Nov 2003
Posts: 3534
Location: Berlin

PostPosted: Wed Nov 20, 2024 4:43 pm    Post subject: Reply with quote

So?
Code:
[Unit]
Description=NordVPN Daemon
Requires=nordvpnd.socket
#After=network-pre.target
After=network-online.service
Wants=network-online.service


[Service]
ExecStart=/usr/sbin/nordvpnd
NonBlocking=true
KillMode=process
Restart=on-failure
RestartSec=5
# centos7 RuntimeDirectory ignored
RuntimeDirectory=nordvpn
RuntimeDirectoryMode=0750
# User=root
Group=nordvpn

[Install]
WantedBy=default.target
Oder soll das After=network-pre.target stehen bleiben?
PS: Ich hatte etwas überlesen. Ich war der Meinung, das nur bei NetworkManager älter als 0.9.10 NetworkManager-wait-online.service erforderlich ist.
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5320

PostPosted: Wed Nov 20, 2024 4:57 pm    Post subject: Reply with quote

NetworkManager-wait-online wird genutzt damit NetworkManager systemd mitteilen kann, dass es eine Verbindung aufgebaut hat und damit network-online.target als erreicht gilt

siehe auch man NetworkManager-wait-online.service
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1713

PostPosted: Wed Nov 20, 2024 6:48 pm    Post subject: Reply with quote

flammenflitzer wrote:
So?

ja, so müsste es gehen.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum