如何通过linux中的pid杀死进程

时间:2015-10-03 19:41:29

标签: linux bash process command kill

我是Linux的新手,我正在构建一个接收进程名称的程序,获取其PID(我对该部分没有任何问题),然后将PID传递给kill命令但是它不起作用。它是这样的:

read -p "Process to kill: " proceso
proid= pidof $proceso
echo "$proid"
kill $proid

有人可以告诉我为什么它不会被杀死吗?我知道还有其他一些方法可以做到,即使使用PID,但它们似乎都不适合我。我相信它是Bash语言的一些问题(我刚开始学习)。

8 个答案:

答案 0 :(得分:3)

而不是:

echo date('Y-m-d h:i:s', $item->timestamp / 1000);
// e.g
echo date('Y-m-d h:i:s',1443852054000/1000);
// shows 2015-10-03 02:00:54

你可能意味着这个:

proid= pidof $proceso

即便如此, 该计划可能不会被杀死。 默认情况下,proid=$(pidof $proceso) 会将kill PID信号发送到指定的进程, 让它有机会以有序的方式关闭, 例如,清理它使用的资源。 使用TERMKILL kill -KILL PID发送一个没有优雅清理的进程的最强信号是kill -9 PID

  

我认为这是bash语言的一些问题(我刚刚开始学习)。

您发布的原始行proid= pidof $proceso应该引发错误, 和Bash会打印一条关于它的错误消息。 调试问题首先要阅读并理解软件试图告诉您的错误消息。

答案 1 :(得分:2)

kill 希望你告诉它**如何杀死*,所以必须有64种不同的方法来杀死你的进程:)它们有名字和数字。最致命的是-9。一些有趣的包括:

  • SIGKILL - SIGKILL(也是-9)信号强制进程立即停止执行。程序不能忽略这个信号。这个过程也无法清理。
  • SIGHUP - SIGHUP信号将进程与父进程断开连接。这也用于重启进程。例如,“killall -SIGUP compiz”将重新启动Compiz。这对于内存泄漏的守护进程非常有用。
  • SIGINT - 此信号与按ctrl-c相同。在某些系统上,“删除”+“中断”会向进程发送相同的信号。该过程被中断并停止。但是,该过程可以忽略此信号。
  • SIGQUIT - 这就像SIGINT一样,能够使进程产生核心转储。

答案 2 :(得分:0)

您必须使用kill语句发送SIGKILL标志。 kill -9 [pid] 如果你不想操作系统选择在方便的时候终止进程,那么SIGKILL(-9)会告诉操作系统现在终止进程而不会忽略命令直到稍后。

答案 3 :(得分:0)

试试这个 杀了-9 它将使用方括号

中的PID来终止任何进程

答案 4 :(得分:0)

尝试“kill -9 $ proid”或“kill -SIGKILL $ proid”命令。如果您需要更多信息,请click

答案 5 :(得分:0)

根据您所拥有的内容,您似乎没有在proid变量中获得实际的PID。如果要捕获pidof的输出,则需要将该命令包含在for command substitution的旧形式的背景中...

proid=`pidof $proceso`

...或者像新的命令替换形式一样。

proid=$(pidof $proceso)

答案 6 :(得分:0)

我遇到了类似的问题,只想每天跑几小时监视器(视频监控)。 写了两个sh脚本;

cat startmotion.sh

#!/bin/sh
motion -c /home/username/.config/motion/motion.conf

第二个; cat killmotion.sh

#!/bin/sh
OA=$(cat /var/run/motion/motion.pid)
kill -9 $OA

这些是在预定时间从crontab调用的

ctontab -e
0 15 * * * /home/username/startmotion.sh
0 17 * * * /home/username/killmotion.sh

很简单,但这就是我所需要的。

答案 7 :(得分:0)

使用以下命令显示进程的端口和PID:

sudo netstat -plten 

然后

kill -9 PID

以下是杀死在端口8283上运行的进程且其PID = 25334的示例

enter image description here