linux系统怎么结束程序,如何在 Linux 系统中结束进程或是中止程序

如何在 Linux 系统中结束结束进程或是中止程序

99743a86976c2620bd15b8ddd7f7012f.png

进程出错的时候,您可能会想要中止或是中断这个进程。本文,我们将在命令行和图形界面中探索进程或是应用程序的中断,这里我们使用 gedit 作为样例程序。

使用命令行、终端字符

Ctrl + C

在命令行中调用 gedit (如果您没有使用 gedit & 命令)程序发生错误时,shell 会话被阻塞,将不会释放出相应的错误提示,此下,Ctrl + C (Ctrl 和 C 的组合键) 会很管用。gedit 会被中断,由于 Ctrl + C 给 gedit 发送了 SIGINT 信号,之前的所有工作都将丢失(除非文件已经被保存)。SIGINT 是一个会默认执行进程中断的终止信号,它将指示 shell 终止 gedit 的运行,并返回到主函数的循环中,此时,您将得到提示语。

1

2

3

$gedit

^C

Ctrl + Z

它被称为挂起字符,能够为进程发送 SIGTSTP 信号。它也是一个中止信号,但是默认行为不是杀死进程,而是挂起进程。

下面的命令将会停止(杀死/中断) gedit 的运行,并返回 shell 提示。

1

2

3

4

5

$gedit

^Z

[1]+ Stopped        gedit

$

一旦进程被挂起(以 gedit 为例),将不能在 gedit 中做任何事情。而在后台,该进程任然是一个作业,可以使用 jsbs 命令验证。

1

2

3

$jobs

[1]+ Stopped        gedit

jobs 允许您在单个 shell 会话中控制多个进程。您可以在前台或是后台终止,恢复或是移动作业。

让我们在后台恢复 gedit,释放提示并运行其它命令吧。您可以根据作业 ID(注意,jobs 命令显示出来的 [1] 就是作业 ID)使用 bg 命令恢复进程。

1

2

3

$bg1

[1]+gedit&

这和直接使用 gedit & 启动程序效果差不多:

1

2

$gedit&

使用 kill

kill 命令提供信号的精确控制,允许您通过进程 ID 或是 PID,根据特定的信号名或是信号数字为进程发送信号。

kill 命令能够根据作业 ID 控制进程,这一点是我喜欢的。让我们使用 gedit & 命令在后台开启 gedit 服务。假设通过 jobs 命令我得到了一个 gedit 的作业 ID,让我们为 gedit 发送 SIGINT 信号吧:

1

2

$kill-sSIGINT%1

作业 ID 需要使用 % 前缀,不然 kill 会将其视作 PID。

不明确指定的信号,kill 仍然可以工作。此时,默认会发送能中断进程的 SIGTERM 信号。执行 kill -l 查看信号名列表,使用 man kill 命令阅读手册。

使用 killall

如果您不想使用特定的工作 ID 或者 PID,killall 允许您使用特定的进程名。中断 gedit 最简单的 killall 使用方式是:

1

2

$killallgedit

它将终止所有名为 gedit 的进程。和 kill 想死,默认发送的信号时 SIGTERM。

This will kill all the processes with the name gedit. Like kill, the default signal is SIGTERM. 使用 -I 选项忽略大小写。

1

2

3

4

5

6

$gedit&

[1]14852

$killall-IGEDIT

[1]+ Terminated       gedit

查看手册学习更多 killall 命令选项(如 -u)。

使用 xkill

您是否遇见过播放器崩溃,比如 VLC 灰屏或挂起?现在,获得程序 PID 之后,您就可以使用 xkill 命令终止应用程序。

df523a749acbae5c077576480b0cdc0c.png

xkill 允许您使用鼠标关闭窗口。仅需在终端执行 xkill 命令,它将会改变鼠标光标为一个 X 或是一个骷髅图标。点击您想关闭的进程窗口上的 X。小心使用 xkill,如手册描述的一致,它很危险。我已经提醒过您了!

参阅手册,了解上述命令更多信息。您还可以接续探索 pkill 和 pgrep 命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值