美文网首页我用 LinuxLinux学习之路Linux
解析如何在Linux系统中结束进程或中止程序

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

作者: 994d14631d16 | 来源:发表于2018-06-06 11:20 被阅读14次

在Linux中有几种使用命令行或图形界面终止一个程序的方式。进程出错的时候,您可能会想要中止或是杀掉这个进程。我们将探索在命令行和图形界面中终止进程或是应用程序,这里我们使用gedit作为样例程序。

​  使用命令行或字符终端界面

  Ctrl+C

  在命令行中调用gedit(如果您没有使用gedit&命令)程序的一个问题是shell会话被阻塞,没法释放命令行提示符。在这种情况下,Ctrl+C(Ctrl和C的组合键)会很管用。这会终止gedit,并且所有的工作都将丢失(除非文件已经被保存)。Ctrl+C会给gedit发送了SIGINT信号。这是一个默认终止进程的停止信号,它将指示shell停止gedit的运行,并返回到主函数的循环中,您将返回到提示符。

  $gedit

  ^C

  Ctrl+Z

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

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

  $gedit

  ^Z

  [1]+Stoppedgedit

  $

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

  $jobs

  [1]+Stoppedgedit

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

  让我们在后台恢复gedit,释放提示符以运行其它命令。您可以通过bg命令来做到,后跟作业ID(注意上面的jobs命令显示出来的[1],这就是作业ID)。

  $bg1

  [1]+gedit&

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

  $gedit&

  使用kill

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

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

  $kill-sSIGINT%1

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

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

  使用killall

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

  $killallgedit

  它将终止所有名为gedit的进程。和kill相似,默认发送的信号是SIGTERM。使用-I选项忽略进程名的大小写。

  $gedit&

  [1]14852

  $killall-IGEDIT

  [1]+Terminatedgedit

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

  使用xkill

  您是否遇见过播放器崩溃,比如VLC灰屏或挂起?现在你可以像上面一样获得进程的PID来杀掉它,或者使用xkill命令终止应用程序。

  xkill允许您使用鼠标关闭窗口。仅需在终端执行xkill命令,它将会改变鼠标光标为一个X或是一个小骷髅图标.

相关文章

  • 解析如何在Linux系统中结束进程或中止程序

    在Linux中有几种使用命令行或图形界面终止一个程序的方式。进程出错的时候,您可能会想要中止或是杀掉这个进程。我们...

  • linux进程管理命令

    linux进程管理 1.目的 查看系统中运行的程序和进程、判断服务器的健康状态和强制中止不需要的进程。定义:程序是...

  • 什么是core、bug

    一、什么是core 1、当程序异常终止或崩溃(出现内存越界)时,操作系统会中止你的进程,并将进程此时的内存中的内容...

  • Linux | Shell commands

    进程管理 Linux进程状态解析之R、S、D、T、Z、X如何在Linux中查看所有正在运行的进程我使用的命令有: ...

  • linux的常见命令

    linux系统是由:系统内核、shell、文件系统、应用程序组成; 查看系统当前进程连接数: 如何在/usr目录下...

  • kali linux 进程管理

    1. 进程管理 在 linux 系统中每个程序都含有自己的进程,我们可以使用 linux 的命令来查看系统的进程信...

  • [基础]查看Linux服务\进程\内存等基本命令使用

    在Linux下每个执行得程序或应用都称为一个进程,类似于Windows系统中的任务管理器,同样的我们在Linux中...

  • Android的进程管理机制

    Linux系统对进程的管理方式是一旦进程活动停止,系统就会结束该进程。Android系统虽基于Linux,但在进程...

  • linux core dump

    core dump:(内存快照)在linux中当程序发生异常中止或者崩溃时,操作系统会将程序当时的内存状况记录下来...

  • 进程(一):什么是进程

    进程是运行在 Linux 中的程序的一个实例。当我们在 Linux 中执行一个程序时,系统会为这个程序创建特定的环...

网友评论

    本文标题:解析如何在Linux系统中结束进程或中止程序

    本文链接:https://www.haomeiwen.com/subject/gscbsftx.html