指点成金-最美分享吧

登录

linux中怎么终止正在运行的进程

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了linux中怎么终止正在运行的进程相关的知识,希望对你有一定的参考价值。

Linux中终止一个正在运行运行的进程最常用的是kill命令,它是用进程PID作为参数来杀死进程。那如何获得指定进程的PID呢?用pidof命令啊。比如获取syslogd进程PID的命令是:pidof syslogd。知道了进程PID,就可以用kill命令终止它了:
kill -9 PID号码
或者kill -2 PID号码
-9参数是强制结束进程,而-2参数是相当于用键盘组合键Ctrl+C的方式正常结束进程,两种方式可以根据进程的运行情况来用。
终止进程还可以选择killall命令,顾名思义就是杀死所有以某个命令启动的所有进程(以杀死httpd命令启动的所有进程为例):
killall -9 httpd
参考技术A 查看linux中所有正在运行的进程
,可以参考如下方法:
1、通过ps命令的-a或者-e参数来获取系统中所有的进程,这两个参数的作用一样的。
2、通过top命令来获取系统中所有的进程任务
。执行top命令后,在tasks一栏会看到总的任务数。

在给定时间后自动终止Linux进程/ php脚本

我正在运行一个爬虫程序,每小时用PHP编写一个cron作业。当所有事情都按预期进行时,脚本会自动退出。但是,由于某些原因,有时它会陷入无限循环。它变得更糟,因为我使用锁定文件来避免重复运行,当爬虫被卡住时它永远不会再次运行,直到它手动杀死它(ps aux - > kill)

无论发生什么事情,我怎样才能确保脚本在几个小时后结束?

我应该在PHP代码中添加一行吗?在Linux中直接执行它不是更强大吗?

到目前为止,我最好的想法是使用所有必需的命令创建一个小批处理文件,然后直接使用cron而不是php脚本调用该批处理。

我是对的,命令应该是什么?

谢谢

编辑:迄今为止我发现的最好的是:http://www.linuxquestions.org/questions/linux-general-1/how-to-kill-the-process-after-specific-time-624453

bash太长了,我希望有一个更聪明,更短的解决方案。

干杯

答案

这会杀死一个小时前开始的php进程:

$(ps -eo comm,pid,etimes | awk "/^php/ {if ($3 > 3600) { print "kill "$2}}")

3600 - 第二个时间戳

附:你可以运行命令

> ps -eo comm,pid,etimes

之前和之后确保一切顺利。

P.P.S.我知道这是一个老问题,但有人可能会发现它有用

以上是关于linux中怎么终止正在运行的进程的主要内容,如果未能解决你的问题,请参考以下文章