我使用Java API连接远程计算机,以便查看正在运行的进程。
其中一个要求是能够杀死任何进程。
现在我正在执行命令
ps aux | grep java
返回正在运行的进程列表。
例如
root 330 0.2 0.0 0 0 pts/0 Z 08:42 0:11 [java]
有谁知道上面的输出使用的是什么规格?我需要将上面的行转换为一个对象,其中330将是进程ID。
答案 0 :(得分:3)
也许你可以使用这样的东西:
ps -ef | grep java | awk -F" " '{print $2}'
或者自己指定格式(例如pid和命令):
ps -eo pid,comm | grep java | awk -F" " '{print $1}'
如果grep需要带参数的命令:
ps -eo pid,command | grep java | awk -F" " '{print $1}'
答案 1 :(得分:3)
答案 2 :(得分:1)
在我的Ubuntu系统上,ps
表示它符合这些标准:
标准 这个ps符合:
1 Version 2 of the Single Unix Specification 2 The Open Group Technical Standard Base Specifications, Issue 6 3 IEEE Std 1003.1, 2004 Edition 4 X/Open System Interfaces Extension [UP XSI] 5 ISO/IEC 9945:2003</blockquote>
但您可以考虑将问题卸载到pgrep
,该问题已经维护并且已经了解了进程名称等。它为您提供了更简单的输出:默认情况下,只需匹配的进程ID,每行一个,如下所示:
$ pgrep apache
3990
22244
22388
22391
22476
解析起来并不容易。如果您需要查看更多内容,可以考虑-l
标记:
$ pgrep -l apache
3990 apache2
22244 apache2
22388 apache2
22391 apache2
22476 apache2
另请考虑查看/proc
filesystem,ps
查找其数据。