ps 和 kill 命令详解

2023-10-28

1.作用
kill命令用来中止一个进程。

2.格式
kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]

3.参数
-s:指定发送的信号。
-p:模拟发送信号。
-l:指定信号的名称列表。
pid:要中止进程的ID号。
Signal:表示信号。

4.说明
进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,所关心的是如何去控制这些进程,让它们能够很好地为用户服务。

Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。批处理进程和终端没有联系,是一个进程序列。监控进程(也称系统守护进程)时Linux系统启动时启动的进程,并在后台运行。例如,httpd是著名的Apache服务器的监控进程。

kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中,我们看到系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源。在讲解安装和登陆命令时,曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的。

5.应用实例
(1)强行中止(经常使用杀掉)一个进程标识号为324的进程:
#kill -9 324

(2)解除Linux系统的死锁
在Linux中有时会发生这样一种情况:一个程序崩溃,并且处于死锁的状态。此时一般不用重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可。当kill处于X-Window界面时,主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端,在那里中止有问题的程序。比如,如果Mozilla浏览器程序出现了锁死的情况,可以使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的 PID,然后使用kill命令停止这个程序:
#kill -SIGKILL XXX
其中,XXX是包含有Mozolla浏览器的程序的进程标识号。

(3)使用命令回收内存
我们知道内存对于系统是非常重要的,回收内存可以提高系统资源。kill命令可以及时地中止一些“越轨”的程序或很长时间没有相应的程序。例如,使用top命令发现一个无用 (Zombie) 的进程,此时可以使用下面命令:
#kill -9 XXX
其中,XXX是无用的进程标识号。

然后使用下面命令:
#free
此时会发现可用内存容量增加了。

(4)killall命令
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:
# killall -HUP inetd

*杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。



首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:

# kill -pid

注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。

*确定要杀死进程的PID或PPID

# ps -ef | grep httpd

*以优雅的方式结束进程

# kill -l PID

-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。

*TERM信号

给父进程发送一个TERM信号,试图杀死它和它的子进程。

# kill -TERM PPID

*killall命令

killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。

# killall httpd

*停止和重启进程

有时候只想简单的停止和重启进程。如下:

# kill -HUP PID

该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。

*绝杀 kill -9 PID

同意的 kill -s SIGKILL

这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。

当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。

如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ps 和 kill 命令详解 的相关文章

随机推荐

  • IP核的使用之ROM(Vivado)

    存储类IP核 ROM 文章目录 存储类IP核 ROM 一 引言 二 ROM IP核及相关内容扫盲 1 ROM简介 2 ROM的初始化文件介绍 3 分布式ROM和块ROM简介 4 单端口ROM和双端口ROM简介 三 分布式ROM IP核的创建
  • 高斯混合模型(GMM)先验的推断

    GMM先验的优化方程 假设图像降质模型为 Y A X N Y AX N Y AX N 我们希望恢复
  • 腾讯云SA3服务器AMD处理器CPU网络带宽性能详解

    腾讯云AMD服务器SA3实例CPU采用2 55GHz主频的AMD EPYCTM Milan处理器 睿频3 5GHz 搭载最新一代八通道DDR4 内存计算性能稳定 默认网络优化 最高内网收发能力达1900万pps 最高内网带宽可支持100Gb
  • 二极管常见分类及使用

    1 肖特基二极管 1 1概念 肖特基二极管 SBD 不是利用P型半导体与N型半导体接触形成PN结原理制作的 而是利用金属与半导体接触形成的金属 半导体结 肖特基势垒 原理制作的 因此 SBD也称为金属 半导体 接触 二极管或表面势垒二极管
  • 获取上个月的起止时间

    function 日期初始化 alert getStartDate alert getEndDate 获取开始时间 function getStartDate var date new Date var year date getFullY
  • Transform 基础知识

    Transform 变换 是场景中最常打交道的类 用于控制物体的位移 旋转 缩放等功能 Transform Class inherits from Component IEnumerable Position rotation and sc
  • HJ41 称砝码

    题目 HJ41 称砝码 题解 import java util 注意类名必须为 Main 不要有任何 package xxx 信息 public class Main public static void main String args
  • RBAC详解

    RBAC详解 1 RBAC模型的工作原理 2 RBAC模型的实现 3 总结 RBAC模型是一种基于角色的访问控制模型 它定义了一些规则和机制来控制用户对系统资源的访问 在本文中 我们将详细讨论RBAC模型的工作原理 并使用一个数据库示例来说
  • 剑指Offer - 面试题49:丑数

    题目 我们把只包含因子2 3 5的数称为丑数 Ugly Number 求按照从小到大的顺序的第1500个丑数 例如 6 8都是丑数 但14不是 因为它包含因子7 习惯上我们把1当作第一个丑数 分析 暴力法 从1开始每个数字都判断 若是丑数
  • 代码实现 —— 基于 STM32 的可见光通信系统课程设计

    目前课设已完成 2m距离 传输10000个连续数字 每个数字两字节大小 即总共20000个字节160000bit 用时7s 大约2 3万bit s 即22 4kB s 误码率为0 视频演示链接 另外 自己写了一个基于QT的串口上位机 结合U
  • 前端面试题汇总(vue+html基础)最新最全

    一 HTML基础部分 1 什么是盒子模型 重要 在网页中 一个元素占有空间的大小由几个部分构成 其中包括元素的内容 content 元素的内边距 padding 元素的边框 border 元素的外边距 margin 四个部分 这四个部分占有
  • FDbus

    文章目录 介绍 背景 特点 FDBus 中间件模型 FDBus 寻址和组网 Server地址 Server命名和地址分配 name server使用如下规则分配server地址 多主机组网 host server的工作原理 client 与
  • 时序分解

    时序分解 Matlab实现CEEMD互补集合经验模态分解时间序列信号分解 目录 时序分解 Matlab实现CEEMD互补集合经验模态分解时间序列信号分解 效果一览 基本介绍 程序设计 参考资料 效果一览 基本介绍 Matlab实现CEEMD
  • Spring源码之事件监听机制(下)

    文章目录 前言 一 手写事件监听机制框架 1 准备 2 事件监听接口 3 事件管理器 4 事件发布器 5 需求 6 编码 二 观察者模式 1 概述 2 UML图 3 Coding验证 小结 前言 这篇文章接的是上篇文章Spring源码之事件
  • java 抓取网页_JAVA使用爬虫抓取网站网页内容的方法

    本文实例讲述了JAVA使用爬虫抓取网站网页内容的方法 分享给大家供大家参考 具体如下 最近在用JAVA研究下爬网技术 呵呵 入了个门 把自己的心得和大家分享下 以下提供二种方法 一种是用apache提供的包 另一种是用JAVA自带的 代码如
  • 函数齐次性

    比如一个系统 输入为x 其响应为f x 当输入为ax 其响应为af x 即 f ax af x 则称系统具有一次齐次性 其中a为任意常数 一般地 在数学里面 如果一个函数的自变量乘以一个系数 那么这个函数将乘以这个系数的k次方 我们称这个函
  • Win10聚焦锁屏壁纸保存

    前言 Win10聚焦锁屏每天都会推荐新的壁纸 其中有些质量超高的优秀壁纸 用户自然想下载保存下来 下文介绍如何保存 若用户仅想保存当天的聚焦锁屏壁纸 则推荐方法1 若用户想保存以前的聚焦锁屏壁纸 则推荐方法2 方法1 从微软商店下载软件 注
  • 51单片机OLED收银电子秤称重计价清零去皮金额累计HX711

    实践制作DIY GC0061 收银电子秤称重计价清零去皮金额累计 一 功能说明 基于51单片机设计 收银电子秤称重计价清零去皮金额累计 二 功能介绍 STC89C52单片机 AT89C51 52 OLED HX711 5Kg电子秤 4 4矩
  • 解决ubuntu进行远程连接时出现密码认证失败的问题

    问题描述 1 当我们将mobaxterm 新建会话时 如果用户名设置为root超级用户 我们会发现 root用户登陆不进去 他会跳出来一个窗口 说是ssh服务器拒绝了密码 2 这个问题就困扰到我了 找了很多帖子 都说要改 etc ssh s
  • ps 和 kill 命令详解

    1 作用kill命令用来中止一个进程 2 格式kill s signal p a pid kill l signal 3 参数 s 指定发送的信号 p 模拟发送信号 l 指定信号的名称列表 pid 要中止进程的ID号 Signal 表示信号