这篇文章给大家分享的是有关怎么在Linux系统中结束进程或是中止程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
在 Linux 中有几种使用命令行或图形界面终止一个程序的方式。
进程出错的时候,您可能会想要中止或是杀掉这个进程。在本文中,我们将探索在命令行和图形界面中终止进程或是应用程序,这里我们使用 gedit 作为样例程序。
在命令行中调用 gedit
(如果您没有使用 gedit &
命令)程序的一个问题是 shell 会话被阻塞,没法释放命令行提示符。在这种情况下,Ctrl + C
(Ctrl
和 C
的组合键) 会很管用。这会终止 gedit
,并且所有的工作都将丢失(除非文件已经被保存)。Ctrl + C
会给 gedit
发送了 SIGINT
信号。这是一个默认终止进程的停止信号,它将指示 shell 停止 gedit
的运行,并返回到主函数的循环中,您将返回到提示符。
$ gedit^C
它被称为挂起字符。它会发送 SIGTSTP
信号给进程。它也是一个停止信号,但是默认行为不是杀死进程,而是挂起进程。
下面的命令将会停止(杀死/中断) gedit
的运行,并返回到 shell 提示符。
$ gedit^Z[1]+ Stopped gedit$
一旦进程被挂起(以 gedit
为例),将不能在 gedit
中写入或做任何事情。而在后台,该进程变成了一个作业,可以使用 jsbs
命令验证。
$ jobs[1]+ Stopped gedit
jobs
允许您在单个 shell 会话中控制多个进程。您可以终止,恢复作业,或是根据需要将作业移动到前台或是后台。
让我们在后台恢复 gedit
,释放提示符以运行其它命令。您可以通过 bg
命令来做到,后跟作业 ID(注意上面的 jobs
命令显示出来的 [1]
,这就是作业 ID)。
$ bg 1[1]+ gedit &
这和直接使用 gedit &
启动程序效果差不多:
$ gedit &
kill
命令提供信号的精确控制,允许您通过指定信号名或是信号数字为进程发送信号,后跟进程 ID 或是 PID。
我喜欢 kill
命令的一点是它也能够根据作业 ID 控制进程。让我们使用 gedit &
命令在后台开启 gedit
服务。假设通过 jobs
命令我得到了一个 gedit
的作业 ID,让我们为 gedit
发送 SIGINT
信号:
$ kill -s SIGINT %1
作业 ID 需要使用 %
前缀,不然 kill
会将其视作 PID。
不明确指定信号,kill
仍然可以工作。此时,默认会发送能中断进程的 SIGTERM
信号。执行 kill -l
可以查看信号名列表,使用 man kill
命令阅读手册。
如果您不想使用特定的工作 ID 或者 PID,killall
允许您使用特定的进程名。中断 gedit
最简单的 killall
使用方式是:
$ killall gedit
它将终止所有名为 gedit
的进程。和 kill
相似,默认发送的信号是 SIGTERM
。使用 -I
选项忽略进程名的大小写。
$ gedit &[1] 14852 $ killall -I GEDIT[1]+ Terminated gedit
查看手册学习更多 killall
命令选项(如 -u
)。
您是否遇见过播放器崩溃,比如 VLC 灰屏或挂起?现在你可以像上面一样获得进程的 PID 来杀掉它,或者使用 xkill
命令终止应用程序。
Using xkill
xkill
允许您使用鼠标关闭窗口。仅需在终端执行 xkill
命令,它将会改变鼠标光标为一个 X 或是一个小骷髅图标。在你想关闭的进程窗口上点击 x。小心使用 xkill
,如手册描述的一致,它很危险。我已经提醒过您了!
感谢各位的阅读!关于“怎么在Linux系统中结束进程或是中止程序”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。