linux中终止停止进程_如何在Linux中终止进程或停止程序
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
。
xkill
允许您使用鼠标杀死窗口。 只需在终端中执行xkill
,该终端应将鼠标光标更改为x或微小的骷髅图标。 在要关闭的窗口上单击x 。 但是,请小心使用xkill
-正如其手册页所述,这样做可能很危险。 你被警告了!
有关更多信息,请参见每个命令的手册页。 您还可以浏览命令pkill
和pgrep
。
翻译自: https://opensource.com/article/18/5/how-kill-process-stop-program-linux
linux中终止停止进程
更多推荐
所有评论(0)