staging.inyokaproject.org

Screen automatisiert mit Scripten starten

Status: Ungelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

gnude

Avatar von gnude

Anmeldungsdatum:
11. Juli 2014

Beiträge: 843

Hallo, ich habe einen Server auf dem 5 Shellscripe (die jeweils in einer Schleife laufen) in einer Screen Sitzung laufen. Daher jedes Script nen eigenes Screen-Fenster. Nun würde ich gern dieses ganze Konstrukt von der Komandozeile aus Starten, optimalerweise so das es beim Hochfahren des Rechners automatisch startet.

Besteht die Möglichkeit Screen direkt mit mehreren Shell-Scripten zu starten?

holimatic

Avatar von holimatic

Anmeldungsdatum:
15. Dezember 2009

Beiträge: 405

gnude schrieb:

Besteht die Möglichkeit Screen direkt mit mehreren Shell-Scripten zu starten?

Hast du mal diese Anleitung angeschaut screen

Damit habe ich alle Infos gefunden, um in einem Server Screens autom. zu starten und laufen zu lassen.

gnude

(Themenstarter)
Avatar von gnude

Anmeldungsdatum:
11. Juli 2014

Beiträge: 843

Habe ich mir angeschaut, aber so ganz komm ich damit nicht klar....

vermutlich ist dieser Abschnitt dafür zuständig:

Automatischer Aufruf

Um den Aufruf von "screen" beim Anmelden zu automatisieren (was bei einem Desktop-System evtl. nicht sinnvoll ist), kann die Datei .bash_profile im Homeverzeichnis wie folgt erweitert werden [3]:

 if  [ -z $STY ] && [ $TERM != "screen" ]; then
   /usr/bin/screen -xRR;
 else
   /usr/bin/screen -X hardstatus alwayslastline '[%H] %Lw%=%u %d.%m.%y %c '
 fi

Aber wo kann ich dort 4 oder 5 Shellscripte eintragen die dann alle in jeweils einem Screen-Fenster laufen?

Ich habe Pausschal so gedacht.... (Beispiel)

screen -run script1.sh -run script2.sh -run script3 sh

und alle laufen dann parallel.....

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Hm, den -run Parameter konnte ich in der Manpage gar nicht finden. So sollte das aber gehen:

screen -S "script1.sh" -dm script1.sh
screen -S "script2.sh" -dm script2.sh
screen -S "script3.sh" -dm script3.sh

Bei dem Skript musst Du ggf. noch den absoluten Pfad angeben. Das -S ist nur Schönheitssache, damit die Screen-Sessions auch entsprechend benanntn werden.

Danach solltest Du mit folgendem Kommando drei Screen-Sessions sehen:

screen -x

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Doc_Symbiosis schrieb:

Hm, den -run Parameter konnte ich in der Manpage gar nicht finden. So sollte das aber gehen:

Nee, denn das erzwingt ja mehrere screen-Sessions. Wenn ich die Frage richtig verstanden habe, geht es aber darum eine Session mit mehreren Windows zu starten.

gnude

(Themenstarter)
Avatar von gnude

Anmeldungsdatum:
11. Juli 2014

Beiträge: 843

Hallo, ja genau. Ich möchte eine Session mit mehreren Windows starten in dem jeweils ein Script läuft. Der Parameter "run" war jetzt von mir erfunden, nur um zu zeigen wie ich es mir vorstelle. Das ich praktisch mit einem Aufruf dem screen 4 Scripte übergebe die dann parallel laufen.

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4735

Ungetestet:

1
2
3
4
5
6
7
readonly sessionName='sitzungsname'
screen -Adm -S "$sessionName" -t fenster1
screen -S "$sessionName" -X screen -t fenster2
# ...
screen -S "$sessionName" -p fenster1 -X stuff $'befehlszeile(n) für fenster 1\n'
screen -S "$sessionName" -p fenster2 -X stuff $'befehlszeile(n) für fenster 2\nZeile 2\n'
# ...

Das erzeugt zuerst die Sitzung und die Fenster innerhalb der Sitzung und füttert dann die Fenster mit Eingaben die dort ausgeführt werden.

Antworten |