首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能停止nohup过程

不能停止nohup过程
EN

Unix & Linux用户
提问于 2021-07-23 14:30:25
回答 1查看 12.1K关注 0票数 1

我正在尝试运行一个非常复杂的统计模型,我预计需要很长时间,所以我使用nohup来运行这个过程。但是,我低估了这个过程的长度,它需要像260+那样的时间来完成,所以我想取消这个过程。

我尝试使用ps aux |grep nohup获取PID,得到以下输出:

代码语言:javascript
复制
 \ 4920  0.0  0.0  14224   972 pts/15   S+   01:53   0:00 grep nohup

当我使用kill -9 14224时,我被告知没有过程。所以我使用ps -ef | grep beast-2,因为我不记得输入的整个命令。调出以下内容:

代码语言:javascript
复制
144039      1  0 Jul22 pts/12   00:00:00 /bin/sh /opt/anaconda3/bin/beast-2 -seed 777 -working -overwrite -instances 3 -threads 3 -beagle_SSE /home//XML/ST736_MTBD1.xml

我使用kill -9 144039并再次检查,但是进程仍然运行在一个新的PID下面。

我能做什么?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-07-23 15:00:26

您的流程14224是grep nohup,正如ps告诉您的那样。因此,当您返回提示符时,grep结束了,因此,kill报告没有这样的进程是合乎逻辑的。

您将不会在您的nohup输出中看到S进程名为ps

那么,如何找到杀死的过程呢?

由于我没有您的beast-2,所以我将使用nohup sleep 99 &演示。

代码语言:javascript
复制
ps -ef | grep sleep

这会让我

代码语言:javascript
复制
ljm      1491988 1336776  0 16:43 pts/0    00:00:00 sleep 999
ljm      1492021 1492069  0 16:45 pts/0    00:00:00 grep sleep

1492021又是我的grep,所以这里不重要。1491988是我的sleep。父PID为1336776。所以检查它给了我

代码语言:javascript
复制
$ ps -f 1336776
UID          PID    PPID  C STIME TTY      STAT   TIME CMD
ljm      1336776 1336769  0 Jul22 pts/0    Ss+    0:00 /bin/bash

那是一个bash。您还可以更进一步,例如使用pstree

代码语言:javascript
复制
$ pstree -ap  1336769
konsole,1336769
  └─bash,1336776
      └─sleep,1492051 999

所以,如果你杀了他的父母,它就不会再有新的beast-2s了。

代码语言:javascript
复制
kill 1336769

它杀死了控制台和bash,但没有终止睡眠:

代码语言:javascript
复制
$ ps -ef | grep sleep
ljm      1492051       1  0 16:48 ?        00:00:00 sleep 999
ljm      1492285 1492069  0 16:57 pts/1    00:00:00 grep sleep

父进程现在已成为1,这是init进程。如果你现在睡不着觉,

代码语言:javascript
复制
$ kill 1492051
$ ps -ef | grep sleep
ljm      1492329 1492069  0 16:59 pts/1    00:00:00 grep sleep

然后一切都消失了。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/659634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档