it-swarm.com.de

Wie liste ich laufende Bildschirmsitzungen auf?

Ich habe eine Reihe von Servern, auf denen ich Experimente mit screen durchführe. Die Vorgehensweise ist wie folgt:

  1. ssh an Server XXX
  2. starte screen
  3. starten Sie die Experimente in wenigen Registerkarten
  4. trennen screen
  5. verbindung zum Server trennen

Während die Experimente ausgeführt werden, kann ich leicht herausfinden, auf welchen Servern sie sich befinden, indem ich ssh auf alle Server übersetze und meine ausgeführten Prozesse aufführe (mit top oder ps).

Wie kann ich jedoch nach Abschluss der Experimente feststellen, auf welchen Servern eine Bildschirmsitzung geöffnet ist (damit ich die Ausgabe überprüfen, neu starten usw. kann)?

PS: Meine Experimente drucken ihre Ausgabe auch in Dateien ... aber das ist nicht der Punkt meiner Frage.

203
Wookai

Führen Sie den folgenden Befehl als dieser Benutzer aus, um alle Bildschirmsitzungen für einen Benutzer aufzulisten:

screen -ls

So zeigen Sie alle Bildschirmsitzungen auf einem bestimmten Computer an:

ls -laR /var/run/screen/

Ich bekomme das auf meinem Rechner:

gentle ~ # ls -laR /var/run/screen/

/var/run/screen/:
total 1
drwxrwxr-x  4 root utmp   96 Mar  1  2005 .
drwxr-xr-x 10 root root  840 Feb  1 03:10 ..
drwx------  2 josh users  88 Jan 13 11:33 S-josh
drwx------  2 root root   48 Feb 11 10:50 S-root

/var/run/screen/S-josh:
total 0
drwx------ 2 josh users 88 Jan 13 11:33 .
drwxrwxr-x 4 root utmp  96 Mar  1  2005 ..
prwx------ 1 josh users  0 Feb 11 10:41 12931.pts-0.gentle

/var/run/screen/S-root:
total 0
drwx------ 2 root root 48 Feb 11 10:50 .
drwxrwxr-x 4 root utmp 96 Mar  1  2005 ..

Dies ist eine ziemlich brillante Unix-Verwendung von Unix-Sockets, die in Dateisystemberechtigungen eingebunden sind, um Sicherheit, Status und Streams zu verarbeiten.

378
joshperry

Der Befehl Bildschirm-Liste kann sein, was Sie wollen.

Siehe das Mann

19
Zoredache

Obwohl die Antwort von joshperry richtig ist, finde ich es sehr ärgerlich, dass der Bildschirmname (der mit der Option -t festgelegte) nicht angegeben wird. Dies ist eigentlich der Name, mit dem Sie eine Sitzung identifizieren. (nicht seine Schuld, natürlich, das ist ein Fehler des Bildschirms)

Deshalb verwende ich stattdessen ein Skript wie das folgende: ps auxw|grep -i screen|grep -v grep

13
o0'.

Ich bin mir Ihrer Frage nicht ganz sicher, aber wenn Sie nur die aktuell geöffnete Bildschirmsitzung auflisten möchten, versuchen Sie Folgendes:

screen -ls
6
skinp
 For windows system

 Open PuTTY 
 then login in server

Wenn Sie den Bildschirm in der Konsole sehen möchten, müssen Sie einen Befehl schreiben

 Screen -ls

wenn Sie auf den Bildschirm zugreifen müssen, müssen Sie den folgenden Befehl verwenden

 screen -x screen id

Schreiben Sie PWD in die Befehlszeile, um zu überprüfen, in welchem ​​Ordner Sie sich gerade befinden

6
Ankit jain

In den meisten Fällen ist ein screen -RRx $username/ wird genügen :)

Wenn Sie dennoch alle Bildschirme auflisten möchten, fügen Sie das folgende Skript in Ihren Pfad ein und rufen Sie es screen oder wie auch immer auf:

#!/bin/bash
if [[ "$1" != "-ls-all" ]]; then
    exec /usr/bin/screen "[email protected]"
else
    shopt -s nullglob
    screens=(/var/run/screen/S-*/*)
    if (( ${#screens[@]} == 0 )); then
        echo "no screen session found in /var/run/screen"
    else
        echo "${screens[@]#*S-}"
    fi
fi

Es verhält sich genauso wie screen, außer dass alle Bildschirmsitzungen angezeigt werden, wenn die Option -ls-all als erster Parameter angegeben wird.

3
ObiWahn

Mehrere Leute haben bereits darauf hingewiesen

$ screen -ls

würde die Bildschirmsitzungen auflisten.

Hier ist ein weiterer Trick, der für Sie nützlich sein kann.

Wenn Sie den folgenden Befehl als letzte Zeile in Ihre .bashrc -Datei auf Server xxx einfügen, wird beim Anmelden automatisch eine neue Verbindung zu Ihrer Bildschirmsitzung hergestellt.

screen -d -r

Ich hoffe, Sie finden es nützlich.

3
samurai

ps x | grep SCREEN

um zu sehen, was auf dem Bildschirm angezeigt wird, falls Sie den Befehl verwendet haben

screen -A -m -d php make_something.php

0
theworlddecoded