识别进程正在哪个屏幕实例中运行

识别进程正在哪个屏幕实例中运行

侦听端口 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进程正在哪个会话中运行?

答案1

找到了!

要查找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

相关内容