Beispiel | 'screenstart' zum Verwalten von screen-Sitzungen.

Mit dem Terminalumschalter 'screen' kann ein Programm im Hintergrund ohne Ein- Ausgabeterminal betrieben werden. Ein im Hintergrund (detached) laufendes Programm kann dann in einem anderen Terminal zur Bedienung aktiviert (attached) werden. Die sichere Verwendung von 'screen' ist nicht ganz einfach.

Das Hilfsprogramm 'screenstart' vereinfacht die Kontrolle von 'screen' Sitzungen. Es erlaubt z.B. nur eine Sitzung mit einem Programm.


Beispiel für eine screen-Sitzung

Kontrolle des Programms 'infosys' auf dem Rechner Remote pi6w über ein Netzwerk. Zuerst wird mit Befehl 'ssh pi@pi6w' eine Netzwerksverbindung zum Remote pi6w aufgebaut.

Programm 'infosys' kann dann mit Befehl screenstart 'infosys [opt]' aktiviert (attached) werden. Wenn noch keine 'screen' Sitzung existiert, werden alle laufenden Programm-Instanzen gekillt und das Programm mit 'infosys' [opt]' in einer neuen screen Sitzung gestartet.

Programm starten

Programm starten

Das Bild zeigt das Menu von 'infosys' auf Remote pi6w. Alle Ein- und Ausgaben erfolgen jetzt über das Netzwerk in diesem Terminal.

Zum Testen von 'screenstart' verwende ich ein zweites Terminal für Remote pi6w.


Im zweiten Terminal liefert der Befehl 'screenstart -i infosys' alle Details zum Programm 'infosys' und der 'screen' Sitzung.

Die ExitNr kann von anderen Programmen ausgewertet werden.

Programm starten

Programm starten

Befehl screenstart -n infosys' beendet die Ein- und Ausgaben von 'infosys' im ersten Terminal.

Befehl ps -A  /grep infosys zeigt, dass der Prozess 'infosys' aber weiterhin aktiv ist.


Mit Befehl screenstart -k infosys' kann der Prozess 'infosys' beendet werden.

Programm starten

Befehlsoption

Steuerungen können mit diesem Aufruf in cron periodisch prüfen, ob Programm 'infosys' in einer screen-Sitzung läuft. Wenn nicht, dann wird 'infosys' mit den Optionen [opt] in einer neuen screen-Sitzung ohne Terminal (also detached) neu gestartet.

Beispiel zu cron:


      ...
      # Beispiel: cron Einstellungen für Programm 'picamctl'.
      #           Alle zwei Minuten wird geprüft, ob 'picamctl' läuft. 
      #           Sollte es nicht laufen, erfolgt ein Neustart mit 'screen'.
      #
      # * Minute | * Stunde | * Tag | * Monat | * Wochentag 0-7 | Befehl
      */2 * * * * screenstart -nC 'picamctl -A -1'
  


[   Home   |   Beispiele   ]

Günther Schardinger. GNU C, Linux, bash, wget, sftp, curl, grep, C im 21. Jahrhundert, Programmieren in C, makefile, Prüfsummen, shasum