Process

辨識程序在哪個螢幕實例中執行

  • January 26, 2015

偵聽埠 8113 (Solr) 的程序沒有響應。我找到了它的 PID,netstat但是伺服器有大約兩打 Solr 程序在不同的screen會話中執行。

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)
....

我發現辨識它們的唯一方法是停止程序。我嘗試通過哪些文件打開它們來辨識它們,lsof但在這種情況下這根本沒有幫助。有什麼方法可以根據 PID 確定screen程序在哪個會話中執行?

找到了!

要查找screen執行 PID 351 的實例,請在 PID 351 環境中搜尋字元串“STY=”:

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

或使用ps(如果螢幕會話名稱不包含空格字元):

$ ps wwep 351 | grep -o 'STY=\S*'
STY=1410.neverFindMe

引用自:https://unix.stackexchange.com/questions/181101