如何获取进程 ID 来终止 nohup 进程?[关闭]

2024-10-22 08:28:00
admin
原创
109
摘要:问题描述:我在服务器上运行 nohup 进程。当我尝试终止它时,我的 putty 控制台反而关闭了。这是我尝试查找进程 ID 的方法:ps -ef |grep nohup 这是杀死的命令 kill -9 1787 787 解决方案 1:当使用nohup并将任务置于后台时,后台操作符 ( &)...

问题描述:

我在服务器上运行 nohup 进程。当我尝试终止它时,我的 putty 控制台反而关闭了。

这是我尝试查找进程 ID 的方法:

ps -ef |grep nohup 

这是杀死的命令

 kill -9 1787 787

解决方案 1:

当使用nohup并将任务置于后台时,后台操作符 ( &) 将在命令提示符下为您提供 PID。如果您计划手动管理进程,则可以保存该 PID,并在需要时通过kill PID或使用它来终止进程kill -9 PID(如果您需要强制终止)。或者,您可以稍后通过 找到 PID ps -ef | grep "command name",然后从那里找到 PID。请注意,nohup关键字/命令本身不会出现在ps相关命令的输出中。

如果您使用脚本,您可以在脚本中执行如下操作:

nohup my_command > my.log 2>&1 &
echo $! > save_pid.txt

这将运行并my_command保存所有输出到my.log(在脚本中,$!表示最后执行的进程的 PID)。2是标准错误的文件描述符(stderr)并2>&1告诉 shell 将标准错误输出路由到标准输出(文件描述符1)。它要求&1shell 知道它是该上下文中的文件描述符,而不仅仅是名为的文件12>&1需要将通常写入标准错误的任何错误消息捕获到我们的my.log文件中(来自标准输出)。有关使用 shell 处理 I/O 重定向的更多详细信息,请参阅 I/ O 重定向。

如果命令定期发送输出,您可以偶尔使用 检查输出tail my.log,或者如果您想“实时”跟踪它,则可以使用tail -f my.log。最后,如果您需要终止该进程,您可以通过以下方式执行:

kill -9 `cat save_pid.txt`
rm save_pid.txt

解决方案 2:

我在 VPS 服务器上使用 red hat linux(并通过 SSH - putty),对于我来说以下方法有效:

首先,列出所有正在运行的进程:

ps -ef

然后在第一列中找到您的用户名;我发现了以下三次:

  • 一个是 SSH 连接

  • 第二个是 FTP 连接

  • 最后一个是 nohup 进程

然后在第二列中您可以找到 nohup 进程的 PID,只需输入:

kill PID 

(当然用 nohup 进程的 PID 替换 PID)

就是这样!

我希望这个答案对那些我对 bash 和 SSH 也很陌生的人有用,但在这里找到了我需要的 95% 的知识:)

解决方案 3:

假设我使用以下命令在后台运行 ruby​​ 脚本

nohup ruby script.rb &

然后我可以通过指定命令名称来获取上述后台进程的 pid。在我的例子中,命令是 ruby​​。

ps -ef | grep ruby

输出

ubuntu   25938 25742  0 05:16 pts/0    00:00:00 ruby test.rb

现在你可以使用 kill 命令轻松终止进程

kill 25938

解决方案 4:

jobs -l应该为您提供 nohup 进程列表的 pid。轻轻地杀死(-9)它们。;)

解决方案 5:

你可以尝试

kill -9 `pgrep [command name]`

解决方案 6:

假设你正在使用 nohup 执行 Java 程序,你可以通过以下方式获取 Java 进程 ID

ps aux | grep java

输出

xxxxx     9643  0.0  0.0  14232   968 pts/2   

然后你可以通过输入以下命令来终止进程

sudo kill 9643

或者假设你需要终止所有 java 进程,然后使用

sudo killall java

此命令将终止所有 java 进程。您可以将其与进程一起使用。只需在命令末尾给出进程名称即可

sudo killall {processName}

解决方案 7:

如果您的应用程序总是使用相同的端口,您可以像这样终止该端口中的所有进程。

kill -9 $(lsof -t -i:8080)

解决方案 8:

这适用于Ubuntu

输入此内容以查找PID

ps aux | grep java

所有与 Java 相关的运行过程都将显示

就我而言

johnjoe      3315  9.1  4.0 1465240 335728 ?      Sl   09:42   3:19 java -jar batch.jar

现在杀了它kill -9 3315

僵尸进程终于停止了。

解决方案 9:

当您在 nohup 中创建一个作业时,它会告诉您进程 ID!

nohup sh test.sh &

输出将显示进程 ID,例如

25013

然后你就可以杀死它了:

kill 25013

解决方案 10:

我使用以下命令启动了 django 服务器。

nohup manage.py runserver <localhost:port>

这在 CentOS 上有效:

:~ ns$netstat -ntlp
:~ ns$kill -9 PID 

解决方案 11:

ps -ef | grep <file_type>| grep <username>

例如,如果您正在运行 Python 文件,请使用以下命令:

ps -ef | grep python | grep user_name

它将列出您启动的所有 python 进程。现在您可以终止这些进程,如下所示:

kill -9 <p_id>

解决方案 12:

这在 Mac 上对我很好

kill -9 `ps -ef | awk '/nohup/{ print $2 }'`

解决方案 13:

我经常这样做。试试这个方法:

ps aux | grep script_Name

这里,script_Name可以是任何由nohup运行的脚本/文件。此命令会为您获取一个进程 ID。然后使用下面的命令终止在 nohup 上运行的脚本。

kill -9 1787 787

这里,1787 和 787 是问题中提到的进程 ID。这应该可以实现问题中想要实现的功能。

解决方案 14:

如果你不知道 PID,那么首先使用 TOP 命令找到它

顶部 -U 用户 ID

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

您将使用 top 获取 PID,然后执行 kill 操作。

$ kill -9 <PID>

解决方案 15:

今天我遇到了同样的问题。而且因为时间太久了,我完全忘记了当时用了哪个命令以及什么时候用了哪个命令。我尝试了三种方法:

  1. 使用命令中显示的 STIME ps -ef。这显示了您启动进程的时间,并且很可能您在关闭 ssh 之前执行了 nohup 命令(取决于您)。不幸的是,我不认为最新命令是我使用 nohup 运行的命令,所以这对我来说不起作用。

  2. 第二个是 PPID,也在ps -ef命令中显示。它表示父进程 ID,即创建该进程的进程 ID。对于使用 nohup 运行的进程,ubuntu 中的 ppid 为 1。然后您可以使用它ps --ppid "1"来获取列表,并检查 TIME(进程使用的总 CPU 时间)或 CMD 来查找进程的 PID。

  3. 如果进程占用了某些端口,则使用lsof -i:port,您将获得命令。然后就像上面的答案一样,使用ps -ef | grep command,您将获得 PID。

一旦找到进程的 PID,就可以用kill pid它终止该进程。

解决方案 16:

关于丢失putty:通常这个ps ... | awk/grep/perl/...过程也会被匹配!所以老派的技巧是这样的

ps -ef | grep -i [n]ohup 

这样,正则表达式搜索就与正则表达式搜索过程不匹配!

解决方案 17:

如果您在远程服务器上,请使用 检查内存使用情况top,并找到您的进程及其 ID。之后,只需执行kill [your process ID]

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用