linux中终止停止进程

当一个进程行为异常时,您有时可能想要终止或终止它。 在本文中,我们将探讨几种使用gedit作为示例应用程序从命令行以及图形界面终止进程或应用程序的方法。

使用命令行/终止符

Ctrl + C

从命令行调用gedit一个问题(如果您未使用gedit & )是它不会释放提示,因此shell会话被阻止。 在这种情况下,Ctrl + C(Control键和“ C”组合在一起)非常有用。 这将终止gedit ,所有工作都将丢失(除非保存了文件)。 Ctrl + C将SIGINT信号发送到gedit 。 这是一个停止信号,其默认操作是终止该过程。 它指示shell停止gedit并返回到主循环,然后您将得到提示。



   
   
$ gedit
^C

Ctrl + Z

这称为暂停字符 。 它发送SIGTSTP信号进行处理。 这也是一个停止信号,但是默认操作不是杀死而是暂停进程。

它将停止(杀死/终止) gedit并返回shell提示。



   
   
   $ gedit
   ^Z
   [1]+  Stopped                 gedit
   $

一旦进程暂停(在本例中为gedit ),就无法在gedit编写或执行任何操作。 在后台,该过程成为一项工作 。 可以通过jobs命令来验证。



   
   
  $ jobs
  [1]+  Stopped                 gedit

jobs使您可以在单个shell会话中控制多个进程。 您可以根据需要停止,恢复作业并将其移动到后台或前景。

让我们在后台恢复gedit并释放提示以运行其他命令。 您可以使用bg命令执行此操作,后跟作业ID(上述jobs输出中的注意[1][1]是作业ID)。



   
   
   $ bg 1
   [1]+ gedit &

这类似于使用&,启动gedit


   $ gedit & 

使用杀死

kill可以对信号进行精细控制,使您可以通过指定信号名称或信号编号,后跟进程ID或PID来发出信号。

我喜欢kill是它也可以与工作ID一起使用。 让我们使用gedit &在后台启动gedit 。 假设我在jobs命令中有一个gedit的工作ID,让我们将SIGINT发送到gedit


   $ kill -s SIGINT %1 

请注意,作业ID应当以%为前缀,否则kill将认为它是PID。

无需明确指定信号即可执行kill操作。 在这种情况下,默认操作是发送SIGTERM ,这将终止该过程。 执行kill -l列出所有信号名称,然后使用man kill命令读取手册页。

使用killall

如果您不想指定作业ID或PID,则killall允许您按名称指定进程。 使用killall终止gedit的最简单方法是:


   $ killall gedit 

这将杀死所有名为gedit的进程。 与kill一样,默认信号为SIGTERM 。 它可以选择使用-I忽略大小写:



   
   
   $ gedit &
   [1] 14852

   $ killall -I GEDIT
   [1]+  Terminated              gedit

要了解有关killall提供的各种标志的更多信息(例如-u ,它允许您杀死用户拥有的进程),请检查手册页( man killall

使用xkill

您是否遇到过VLC等媒体播放变灰或挂起的问题? 现在,您可以使用上面列出的命令之一找到PID并xkill应用程序,或者使用xkill

Using xkill

xkill允许您使用鼠标杀死窗口。 只需在终端中执行xkill ,该终端应将鼠标光标更改为x或微小的骷髅图标。 在要关闭的窗口上单击x 。 但是,请小心使用xkill -正如其手册页所述,这样做可能很危险。 你被警告了!

有关更多信息,请参见每个命令的手册页。 您还可以浏览命令pkillpgrep

翻译自: https://opensource.com/article/18/5/how-kill-process-stop-program-linux

linux中终止停止进程

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:22 天前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐