Xrdp/Problembehebung: Unterschied zwischen den Versionen
Erscheinungsbild
| Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
==== Der XRDP-Daemon startet nach einem Neustart nicht ==== | |||
; xrdp.service log | |||
[ERROR] trans_listen_address failed | |||
[ERROR] xrdp_listen_main_loop: xrdp_listen_get_port failed | |||
* Dieser Fehler kann beim Systemstart auftreten, da XRDP versucht, sich an eine Netzwerkschnittstelle zu binden, die noch keine IP-Adresse erhalten hat | |||
; Lösung | |||
Es muss ein Hilfsdienst erstellt werden, der auf die Initialisierung der Schnittstelle wartet. Dazu wird ein Skript unter dem Pfad ''/usr/local/sbin/wait-enp8s0.sh'' erstellt: | |||
<syntaxhighlight lang="bash" highlight="" copy line> | |||
#!/bin/sh | |||
IFACE="enp8s0" | |||
ADDR="10.20.0.1" | |||
TIMEOUT=60 | |||
i=0 | |||
while [ "$i" -lt "$TIMEOUT" ]; do | |||
if ip -4 addr show dev "$IFACE" | grep -q " $ADDR/"; then | |||
exit 0 | |||
fi | |||
i=$((i+1)) | |||
sleep 1 | |||
done | |||
exit 1 | |||
</syntaxhighlight> | |||
* Als nächstes muss die Datei ausführbar gemacht werden: | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
sudo chmod +x /usr/local/sbin/wait-enp8s0.sh | |||
</syntaxhighlight> | |||
* Erstellen einer Dienst-Unit ''/etc/systemd/system/wait-enp8s0.service'': | |||
<syntaxhighlight lang="ini" highlight="" copy line> | |||
[Unit] | |||
Description=Wait for 10.20.0.1 on enp8s0 | |||
After=network.target | |||
Wants=network.target | |||
[Service] | |||
Type=oneshot | |||
ExecStart=/usr/local/sbin/wait-enp8s0.sh | |||
RemainAfterExit=yes | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
sudo systemctl daemon-reload | |||
</syntaxhighlight> | |||
* Schaffung einer Abhängigkeit des Hauptdienstes vom Hilfsdienst: | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
sudo systemctl edit xrdp | |||
</syntaxhighlight> | |||
* Inhalt der Datei: | |||
<syntaxhighlight lang="ini" highlight="" copy line> | |||
[Unit] | |||
After=wait-enp8s0.service | |||
Requires=wait-enp8s0.service | |||
</syntaxhighlight> | |||
* Neustart des Dienstes | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
sudo systemctl daemon-reload | |||
</syntaxhighlight> | |||
== Installation == | == Installation == | ||
Version vom 20. Dezember 2025, 11:45 Uhr
Xrdp/Problembehebung - Beschreibung
Beschreibung
Der XRDP-Daemon startet nach einem Neustart nicht
- xrdp.service log
[ERROR] trans_listen_address failed [ERROR] xrdp_listen_main_loop: xrdp_listen_get_port failed
- Dieser Fehler kann beim Systemstart auftreten, da XRDP versucht, sich an eine Netzwerkschnittstelle zu binden, die noch keine IP-Adresse erhalten hat
- Lösung
Es muss ein Hilfsdienst erstellt werden, der auf die Initialisierung der Schnittstelle wartet. Dazu wird ein Skript unter dem Pfad /usr/local/sbin/wait-enp8s0.sh erstellt:
#!/bin/sh
IFACE="enp8s0"
ADDR="10.20.0.1"
TIMEOUT=60
i=0
while [ "$i" -lt "$TIMEOUT" ]; do
if ip -4 addr show dev "$IFACE" | grep -q " $ADDR/"; then
exit 0
fi
i=$((i+1))
sleep 1
done
exit 1
- Als nächstes muss die Datei ausführbar gemacht werden:
sudo chmod +x /usr/local/sbin/wait-enp8s0.sh
- Erstellen einer Dienst-Unit /etc/systemd/system/wait-enp8s0.service:
[Unit]
Description=Wait for 10.20.0.1 on enp8s0
After=network.target
Wants=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/wait-enp8s0.sh
RemainAfterExit=yes
sudo systemctl daemon-reload
- Schaffung einer Abhängigkeit des Hauptdienstes vom Hilfsdienst:
sudo systemctl edit xrdp
- Inhalt der Datei:
[Unit]
After=wait-enp8s0.service
Requires=wait-enp8s0.service
- Neustart des Dienstes
sudo systemctl daemon-reload
Installation
Aufruf
Optionen
| Unix | GNU | Parameter | Beschreibung |
|---|---|---|---|
Parameter
Umgebungsvariablen
Exit-Status
| Wert | Beschreibung |
|---|---|
| 0 | Erfolg |
| >0 | Fehler |
Anwendung
Problembehebung
Konfiguration
Dateien
| Datei | Beschreibung |
|---|---|
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks