Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux中终止进程 server01:/#ps-ax | grep java 警告:错误的ps语法,可能是假的“-”?看见http://procps.sf.net/faq.html 7342 pts/3 Z 0:00[爪哇] 7404分/3秒+0:00格雷普java server01:/#杀死7342 server01:/#ps-ax | grep java 警告:错误的ps语法,可能是假的“-”?看见http://procps.sf.net/faq.html 7342 pts/3 Z 0:00[爪哇] 7406分/3秒+0:00格雷普java 服务器01:/#_Linux - Fatal编程技术网

在linux中终止进程 server01:/#ps-ax | grep java 警告:错误的ps语法,可能是假的“-”?看见http://procps.sf.net/faq.html 7342 pts/3 Z 0:00[爪哇] 7404分/3秒+0:00格雷普java server01:/#杀死7342 server01:/#ps-ax | grep java 警告:错误的ps语法,可能是假的“-”?看见http://procps.sf.net/faq.html 7342 pts/3 Z 0:00[爪哇] 7406分/3秒+0:00格雷普java 服务器01:/#

在linux中终止进程 server01:/#ps-ax | grep java 警告:错误的ps语法,可能是假的“-”?看见http://procps.sf.net/faq.html 7342 pts/3 Z 0:00[爪哇] 7404分/3秒+0:00格雷普java server01:/#杀死7342 server01:/#ps-ax | grep java 警告:错误的ps语法,可能是假的“-”?看见http://procps.sf.net/faq.html 7342 pts/3 Z 0:00[爪哇] 7406分/3秒+0:00格雷普java 服务器01:/#,linux,Linux,在上面的例子中,我使用ps命令来了解java进程的pid,在上面的例子中是7342 然后我用kill命令终止了这个进程。 但这并没有终止,因为ps命令再次显示了带有pid 7342的java进程 我应该使用其他命令终止进程吗?为什么kill不能终止进程 塔克斯 看看是否效果更好。您必须是root用户或进程所有者才能终止进程。试试看 ps aux 然后 kill-1 PID_编号 要让程序自行关闭,如果它没有回答,您可以强制它关闭 kill-9 PID_编号 请记住,使用-9强制程序将在不询问也不

在上面的例子中,我使用ps命令来了解java进程的pid,在上面的例子中是7342

然后我用kill命令终止了这个进程。 但这并没有终止,因为ps命令再次显示了带有pid 7342的java进程

我应该使用其他命令终止进程吗?为什么kill不能终止进程

塔克斯

看看是否效果更好。您必须是root用户或进程所有者才能终止进程。

试试看

ps aux 然后

kill-1 PID_编号 要让程序自行关闭,如果它没有回答,您可以强制它关闭

kill-9 PID_编号 请记住,使用-9强制程序将在不询问也不保存任何内容的情况下完成 检查:杀人
有关更多详细信息,kill-9可作为确保进程终止的最后手段。…

Linux支持BSD样式的切换到
ps
命令(不带前导-…破折号/连字符)。如果提供hypen,那么GNU coreutils版本的
ps
(主流Linux发行版上的标准版本)将尝试将交换机解释为与SysV兼容。这就是你的错误的来源

我建议使用开关的BSD形式,并查找
-o
选项,以指定仅由匹配进程的PID组成的输出格式

你还试图杀死一个僵尸。正如你发现的那样,这是徒劳的努力。僵尸是进程中的占位符,它可以用于已死亡的进程。它将保留在进程表中,直到其父进程“获取”其退出代码。如果父进程从未执行
wait()
系统调用,则条目将一直保留在那里,直到父进程被杀死,此时僵尸进程(以及任何其他孤立进程)将被
init
进程继承。Linux(或任何其他形式的UNIX)下的正常
init
会定期捕获所有死机进程(僵尸)

从概念上讲,UNIX/Linux系统上存在的每个进程都会作为“僵尸”花费少量时间。。。也就是说,从进程终止到其他进程读取其退出值(即使只是放弃它,如
init
所做的那样)之间应该始终有一段时间


这个问题真的应该在ServerFault上解决

进程被列为已失效。它的工作已经完成,并且保持不变,因为父进程仍然存在。但是,如果父进程崩溃或被kill-9杀死,则没有父进程,因此不存在的进程将一直保留到重新启动。 失效(或僵尸)进程只使用最少的资源,所以您可以保留它们


解决方案:要么杀死父进程,要么使用
kill-9

java进程已经变成了僵尸进程。您应该尝试通过
kill
向父进程发送
SIGCHLD
信号,告诉父进程获取僵尸子进程。如果失败,正如@Martin所提到的,您可以杀死父进程或
kill-9
僵尸进程。

kill-9$(pgrep-f关键字)


杀死通过“关键字”搜索的pid

问题不在于一般的编程,而在于系统。试试superuser.com记住kill-9应该是你最后的选择,因为它不会让你正在杀死的进程的子进程死亡。因此它们变成了僵尸进程。另外:通过运行
psauxf
您将看到父进程是什么。它要么被封锁了,要么没有注意到它的孩子。或者,如果你感到沮丧,
kill-kill
Thanx为Knoldge。kill-9不起作用。您可以告诉命令查找父进程。
server01:/# ps -ax | grep java

Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html

 7342 pts/3    Z      0:00 [java] <defunct>

 7404 pts/3    S+     0:00 grep java


server01:/# kill 7342

server01:/# ps -ax | grep java

Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html

 7342 pts/3    Z      0:00 [java] <defunct>

 7406 pts/3    S+     0:00 grep java


server01:/# 
kill $(pgrep [search pattern])