壳牌脚本以切割ps命令输出
问题描述:
我怎样才能切断ps
命令输出到显示一个单一的过程壳牌脚本以切割ps命令输出
$ ps -ef | grep -i httpd | grep -v grep
root 16786 1 0 Mar03 ? 00:01:02 /usr/sbin/httpd
apache 17153 16786 0 Apr09 ? 00:00:00 /usr/sbin/httpd
apache 17154 16786 0 Apr09 ? 00:00:00 /usr/sbin/httpd
apache 17155 16786 0 Apr09 ? 00:00:00 /usr/sbin/httpd
apache 17157 16786 0 Apr09 ? 00:00:00 /usr/sbin/httpd
apache 17158 16786 0 Apr09 ? 00:00:00 /usr/sbin/httpd
apache 17161 16786 0 Apr09 ? 00:00:00 /usr/sbin/httpd
apache 17162 16786 0 Apr09 ? 00:00:00 /usr/sbin/httpd
apache 17163 16786 0 Apr09 ? 00:00:00 /usr/sbin/httpd
答
要显示的主要过程:
ps -ef | grep 'httpd' | grep -v 'grep' | awk '$3 == 1'
(OR)
ps -ef | awk '/httpd/ && $3 == 1'
这里,
$3
- 家长PID。
编辑:
如果你只需要一个线输出,
ps -ef | grep -m1 'httpd'
答
如果你不在乎它是过程,你可以切断与head -1
第一线后的输出。
$ ps -ef | grep -i httpd | grep -v grep | head -1
root 16786 1 0 Mar03 ? 00:01:02 /usr/sbin/httpd
如果您需要寻找母亲的过程,你可以在-H
选项添加到PS,这(除了缩进子进程做一个很好的进程树/林)定购流程,以便在父母总是列在孩子面前。
$ ps -efH | grep -i httpd | grep -v grep | head -1
root 16786 1 0 Mar03 ? 00:01:02 /usr/sbin/httpd
+0
非常感谢您的帮助 –
非常感谢您的帮助。 –
现在还有一个问题,有一些服务器运行不同的过程,我仍然需要打印一个, –
00:00:00/bin/sh /app/opt/tomcat/bin/../instance1/bin/catalina.sh开始 00:00:00 cronolog /app/opt/tomcat/instance1/logs/catalina.%Y-%m-%d.out 00:00:00/bin/sh/app/opt/tomcat/bin/../instance2/bin/catalina.sh st –