您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何获取进程ID以杀死nohup进程?

如何获取进程ID以杀死nohup进程?

使用nohup并将任务放在后台时,后台运算符(&)将在命令提示符下为您提供PID。如果您的计划是手动管理该进程,则可以保存该PID,然后在需要时通过kill PIDkill -9 PID(如果需要强制终止)将其用于终止该进程。或者,您可以稍后ps -ef | grep "command name"找到PID,然后从那里找到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)。它要求&1外壳程序知道它是该上下文中的文件描述符,而不只是一个名为的文件1。在2>&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
其他 2022/1/1 18:17:19 有436人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶