• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Prüfen ob der Desktop korrekt gestartet ist

tiny

Newbie
Hallo,

normal nutze ich RTCWake um meinen Rechner an Arbeitstagen automatisch zu einer bestimmten Zeit hochzufahren. Manchmal passiert es, dass ich das schlicht vergesse oder den Rechner Abends nochmal starte und den Timer durch den Start lösche - hab bisher nicht herausgefunden wie man das Löschen unterbinden kann. Ich hab aber auch einen Pi 24/7 laufen und wollte mir dort ein Script parken womit ich per Etherwake den PC früh hochfahre (Etherwake ist eingerichtet und geht) und wenn der Desktop läuft die nötigsten Programme startet.

Dafür muss der Pi aber warten bis der Desktop korrekt gestartet ist. Kann ich das über Abfragen per SSH vom Pi auf den PC irgendwie prüfen? Die automatische SSH-Verbindung per Schlüsselpaar ist nicht das Thema, ich hab nur keinen Schimmer wonach man schauen muss damit der Desktop läuft?

tiny

P.S. Als Biliglösung hätte ich noch im Kopf, dass das Script auf dem Pi erst etherwake ausführt und einfach mit 'touch' eine leere Datei in Home-Verzeichnis vom Pi schreibt. Am PC könnte man dann ein Autostart-Script ausführen, dass prüft ob diese Datei da ist und wenn ja: Datei löschen und die Programme starten. Wenn man das nicht per Systemd sondern über eine *.desktop in ~/.local/autostart macht dürfte es keine Probleme wegen Desktop geben. Souverän wird die Lösung aber nicht.
 

manzek

Hacker
Vielleicht lassen sich mit Überwachen der PIDs ebenfalls solche Abfragen starten.
Ungefähr nach dieser Art:

Code:
ps -A | grep -i KDE
 

abgdf

Guru
Man könnte auch prüfen, ob Runlevel 5 gegeben ist.

https://ostechnix.com/check-runlevel-linux/

Code:
who -r
scheint mir am kürzesten zu sein. Ob das über ssh geht, weiß ich aber nicht.
 
OP
T

tiny

Newbie
Das geht so, nur scheitere ich gerade an etwas ganz profanen.

Ich habe hier auf dem Pi schon Scripte die sich automatisch per SSH einloggen und etwas ausführen, z. B.

Code:
ssh -i /home/pi/.desktop tiny@192.168.10.21 -t <command>

Bisher aber immer nur nicht-grafische Sachen. Damit hier eine grafische Anwendung startet muss ich
Code:
export DISPLAY=:0

davor setzen. Das geht, wenn ich mich manuell vom Pi aus auf dem Desktop per SSH einloggen und export DISPLAY=:0 und danach z. B. 'firefox' ausführe. Das ganze aber in einen Aufruf zu packen geht nicht.
Code:
ssh -i /home/pi/.desktop tiny@192.168.10.21 -t export DISPLAY=:0 ; firefox

Ich bin mir nicht einmal sicher ob hier schon 'export' und 'DISPLAY=:0' als getrennte Kommandos interpretiert werden. Vermutlich wird 'firefox' nicht als zweites Kommando zu 'export DISPLAY=:0' sondern zum ganzen SSH-Kommando gerechnet. Alles nach -t in einfache oder doppelte Anführungszeichen zu setzen ändert aber auch nichts.
 
OP
T

tiny

Newbie
Hab es erst einmal mit 'here document' gemacht und geht ganz gut. Vielleicht teste ich ssh -X nochmal.
 
Oben