Linux如何终止进程,两种办法可以搞定!

这篇具有很好参考价值的文章主要介绍了Linux如何终止进程,两种办法可以搞定!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

你应该使用过 ctrl + c 来终止进程,但是你知道它会发送 SIGINT 信号吗?

除了发送 SIGINT 信号(ctrl +c)以外,还有很多其他的终止信号,今天我们就来介绍下终止信号。

在 Linux 中使用终止信号

我们通常使用 kill 命令来终止进程,kill 命令可用的信号超过 50 个:

linux 怎么关闭进程,Linux技术,linux,服务器,运维

使用 kill 命令可以使用这些信号代码来代替信号名称。比如,如果我们想要停止执行某个进程,那么可以使用 SIGTSTP,如下所示:

kill -SIGTSTP %jobID

linux 怎么关闭进程,Linux技术,linux,服务器,运维

以上是使用信号名称(SIGTSTP),另外也可以使用它对应的代码 20,结果是相同的,如下:

kill -20 %jobID

linux 怎么关闭进程,Linux技术,linux,服务器,运维

下面我们介绍一些常用的信号,首先看一下 SIGSTP。

使用 SIGSTP 终止进程

首先我们从前台进程开始。与终止后台进程相比,终止前台进程更加简单,只需要使用绑定的快捷键即可。

执行 SIGTSTP 的快捷键是 ctrl +z。比如,作为演示,我们使用 sleep 命令:

sleep 15000

linux 怎么关闭进程,Linux技术,linux,服务器,运维

上面的例子中,我们使用了 jobs 命令,这是一个很有用的工具,可以显示正在运行和最近终止的进程。

那么,如何终止后台进程呢?需要使用 kill 命令,使用 SIGTSTP 指定 PID 或者 JOBID,如下所示:

kill -SIGSTP %jobID

linux 怎么关闭进程,Linux技术,linux,服务器,运维

使用 SIGCONT 恢复命令执行

SIGCONT 可以帮助恢复最近终止执行的命令。如下所示:

kill -SIGCONT %jobID

linux 怎么关闭进程,Linux技术,linux,服务器,运维

使用 SIGINT 终止执行

这是我使用最多的用于终止的命令。我们举个例子,如下:

linux 怎么关闭进程,Linux技术,linux,服务器,运维

但 SIGINT 也不是万能的,它在某些地方不起作用,比如 bash 解释器中。比如,下面这个 bash 脚本用于接受用户输入:

#!/bin/bash

trap date SIGINT

read input
echo User input: $input
echo Exiting now

linux 怎么关闭进程,Linux技术,linux,服务器,运维

如上图所示,当我按下 ctrl + c 时,它显示当前的日期和时间,只有当我输入了某些信息时,它才停止。

使用 SIGQUIT 终止

SIGQUIT 类似于 SIGINT,但它也会在执行前生成一个核心转储(core dump)。

简单地说,核心转储是在系统崩溃或进程终止之前自动生成的文件。

它可以通过快捷键 ctrl + \ 来触发,可以用来终止前台进程和后台进程。

看下面的例子:

linux 怎么关闭进程,Linux技术,linux,服务器,运维

上述例子是终止一个前台进程,那么怎样用它来终止后台进程呢?看如下语法:

kill -SIGQUIT %jobID

linux 怎么关闭进程,Linux技术,linux,服务器,运维

使用 SIGTERM 终止执行

顾名思义,这是一个终止程序的终止信号,但与 SIGKILL(不管怎样都会终止程序)不同,这是要求终止程序相对柔和的方式。

有时它会在终止前进行清理,其语法如下所示:

kill -SIGTERM %jobID

linux 怎么关闭进程,Linux技术,linux,服务器,运维

使用 SIGKILL

SIGKILL 可以即时强制杀掉任何子进程。有时候,我们可能会遇到这样的问题:有些程序根本无法运行,而且根本无法终止!

这种情况下,我们就可以使用 SIGKILL 来强制杀掉进程。其使用语法如下所示:

kill -SIGKILL %jobID

linux 怎么关闭进程,Linux技术,linux,服务器,运维文章来源地址https://www.toymoban.com/news/detail-770823.html

到了这里,关于Linux如何终止进程,两种办法可以搞定!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux进程终止

    其实进程终止不外乎就以下三种情况: 我们一般关心程序为什么会失败而不关心为什么会成功。换句话说操作系统如何判断程序运行成功呢? 一般在程序末尾返回0以确定程序运行成功 。而这个0会被父进程bash接收。 打印返回码 可以通过 echo $? 查看最近进程退出码。 例如将

    2024年02月07日
    浏览(31)
  • 【Linux初阶】fork进程创建 & 进程终止 & 进程等待

     🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【Linux初阶】 ✒️✒️本篇内容:fork进程创建,理解fork返回值和常规用法,进程终止(退出码、退出场景、退出方法、exit),进程等待(wait、waitpid),阻塞等待和非阻塞等待 🚢🚢作者简介:本科在读,计算机海洋

    2024年02月06日
    浏览(47)
  • 【Linux】Linux进程控制 --- 进程创建、终止、等待、替换、shell派生子进程的理解…

    柴犬: 你好啊,屏幕前的大帅哥or大美女,和我一起享受美好的今天叭😃😃😃 1. 在调用fork函数之后, 当执行的程序代码转移到内核中的fork代码后 ,内核需要分配 新的内存块 和 内核数据结构 给子进程, 内核数据结构包括PCB、mm_struct和页表,然后构建起映射关系 ,同时

    2024年01月16日
    浏览(56)
  • Linux进程控制【创建、终止、等待】

    ✨个人主页: Yohifo 🎉所属专栏: Linux学习之旅 🎊每篇一句: 图片来源 🎃操作环境: CentOS 7.6 阿里云远程服务器 Good judgment comes from experience, and a lot of that comes from bad judgment. 好的判断力来自经验,其中很多来自糟糕的判断力。 进程 创建后,需要对其进行合理管理,光靠

    2024年02月02日
    浏览(55)
  • 【Linux】进程控制(创建、终止、等待)

    环境:centos7.6,腾讯云服务器 Linux文章都放在了专栏:【 Linux 】欢迎支持订阅 相关文章推荐: 【Linux】冯.诺依曼体系结构与操作系统 【Linux】进程理解与学习Ⅰ-进程概念 【Linux】进程理解与学习Ⅱ-进程状态 【Linux】进程理解与学习Ⅲ-环境变量 【Linux】进程理解与学习Ⅳ

    2023年04月16日
    浏览(57)
  • 头歌(Linux之进程管理一):第4关:进程终止

    任务描述 在上一关我们学习使用 vfork 函数创建新进程,并且使用 exit 来结束子进程,本关我们将介绍 Linux 系统中结束进程的其它方法。 本关任务:学习终止进程的常见方法。 相关知识 在上一关以及看到,开发人员使用 vfork 创建出来的子进程可以用 exit 函数来结束。在 L

    2024年02月08日
    浏览(57)
  • [Linux]进程控制详解!!(创建、终止、等待、替换)

            hello,大家好,这里是bang___bang_,在上两篇中我们讲解了进程的概念、状态和进程地址空间,本篇讲解进程的控制!!包含内容有进程创建、进程等待、进程替换、进程终止!! 附上前2篇文章链接: Linux——操作系统进程详解!!(建议收藏细品!!)_bang___ba

    2024年02月15日
    浏览(40)
  • 零基础Linux_10(进程)进程终止(main函数的返回值)+进程等待

    目录 1. 进程终止 1.1 main函数的返回值 1.2 进程退出码和错误码 1.3 进程终止的常见方法 2. 进程等待 2.1 进程等待的原因 2.2 wait 函数 2.3 waitpid 函数 2.4 int* status参数 2.5 int options非阻塞等待 本篇完。 进程终止指的就是程序执行结束了,进程终止退出的场景有三种: 代码运行

    2024年02月07日
    浏览(42)
  • Linux之进程控制&&进程终止&&进程等待&&进程的程序替换&&替换函数&&实现简易shell

    1.1 fork的使用 我们可以使用man指令来查看一下 子进程会复制父进程的PCB,之间代码共享,数据独有,拥有各自的进程虚拟地址空间。 这里就有一个代码共享,并且子进程是拷贝了父进程的PCB,虽然他们各自拥有自己的进程虚拟地址空间,数据是拷贝过来的,通过页表映射到

    2024年04月17日
    浏览(54)
  • 《Linux从练气到飞升》No.18 进程终止

       🕺作者: 主页 我的专栏 C语言从0到1 探秘C++ 数据结构从0到1 探秘Linux 菜鸟刷题集 Ƕ

    2024年02月10日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包