在bash中杀死一个进程

如何杀死在bash中运行的进程 – 例如,假设我打开一个文件:

$ gedit file.txt

有没有什么办法在命令提示符closures它? 这个例子是相当平凡的,因为我可以closures窗口,但似乎有点,特别是当我输错命令。

还有什么办法来逃避正在运行的可执行文件? 这可能有相同的解决scheme,但我想我会问。

谢谢

要中断它,你可以尝试按ctrl c发送一个SIGINT。 如果不能阻止它,你可以尝试使用kill -9 <pid>来杀死它,这会发送一个SIGKILL。 后者不能被过程本身(被杀的人)忽略/拦截。

要将活动进程移动到后台,可以按ctrl z 。 该过程被发送到后台,您将返回到shell提示符。 使用fg命令做相反的事情。

你有多个选项:

首先,你可以使用kill 。 但是你需要你的进程的pid,你可以通过使用pspidofpgrep来获得。

 ps -A // to get the pid, can be combined with grep -or- pidof <name> -or- pgrep <name> kill <pid> 

只要知道名字就可以杀死一个进程。 使用pkillkillall

 pkill <name> -or- killall <name> 

所有命令都会向进程发送一个信号。 如果进程挂起,可能需要发送sigkill到进程(这是信号编号9,所以下面的例子也是这样):

 pkill -9 <name> pkill -SIGKILL <name> 

你也可以用killkillall来使用这个选项。

阅读关于控制stream程的文章,以获得关于stream程的更多信息。

试试kill -9 {processID}

要find进程ID,您可以使用ps -ef | grep gedit ps -ef | grep gedit

这一个是谨慎的暴力使用:

 pkill -9 -e -f processname 

如果你的进程名是“sh”,它也会杀死“bash”

旧post,但我遇到了一个非常类似的问题。 经过一番尝试,我发现你可以用一个命令来做到这一点:

 kill $(ps aux | grep <process_name> | grep -v "grep" | cut -d " " -f2) 

在OP的情况下, <process_name>将是"gedit file.txt"

您可以使用命令pkill来终止进程。 如果你想“玩”,你可以使用“pgrep”,它的工作原理完全相同,但是返回的过程不是杀死它。

pkill有-f参数,允许你匹配整个命令。 所以对于你的例子,你可以:pkill -f“gedit file.txt”

我不清楚你的意思是“转义正在运行的可执行文件”,但是ctrl-z会将进程放到后台并将控制权交还给命令行。 然后您可以使用fg命令将程序重新置于前台。

请检查“顶部”命令,然后如果您的脚本或任何正在运行请注意“PID”

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1384 root 20 0 514m 32m 2188 S 0.3 5.4 55:09.88 example 14490 root 20 0 15140 1216 920 R 0.3 0.2 0:00.02 example2 kill <you process ID> Example : kill 1384