Identifizieren Sie, in welcher Bildschirminstanz ein Prozess ausgeführt wird

7

Ein Prozess, der Port 8113 (Solr) überwacht, reagiert nicht. Ich habe die PID über gefunden, netstataber auf dem Server laufen ungefähr zwei Dutzend Solr-Prozesse in verschiedenen screenSitzungen.

3607.foobar-client2  (12/27/14 20:54:02)     (Detached)
3797.solr.bo.app    (12/25/14 11:51:30)     (Detached)
2962.solr       (12/25/14 11:47:23)     (Detached)
1410.solrTester         (12/25/14 11:39:41)     (Detached)
1348.solrReports (12/25/14 11:38:41)     (Detached)
....

Die einzige Möglichkeit, sie zu identifizieren, besteht darin, die Prozesse anzuhalten. Ich habe versucht, sie zu identifizieren, anhand derer Dateien geöffnet werden, lsofaber das war unter diesen Umständen überhaupt nicht hilfreich. Gibt es eine Möglichkeit, anhand der PID zu bestimmen, in welcher screenSitzung ein Prozess ausgeführt wird?

dotancohen
quelle

Antworten:

6

Fand es!

Um die screenInstanz zu finden, in der PID 351 ausgeführt wird, durchsuchen Sie die PID 351-Umgebung nach der Zeichenfolge "STY =":

$ grep -z '^STY=' /proc/351/environ
STY=1410.neverFindMe

Oder mit ps(wenn Bildschirmsitzungsnamen keine Leerzeichen enthalten):

$ ps wwep 351 | grep -o 'STY=\S*'
STY=1410.neverFindMe
dotancohen
quelle
Vielen Dank, Stéphane! Sie können diese Änderung als eine andere Antwort veröffentlichen, da sie sehr nützliche Informationen hinzufügt. Ich würde sie akzeptieren.
Dotancohen