• linux杀死进程的五种方法(kill)


    添加链接描述
    相关博主的链接;

    方法一:通过kill 进程id的方式可以实现
    首先需要知道进程id, 例如,想要杀死firefox的进程,通过 ps -ef|grep firefox,可以查到firefox的进程id:
    在这里插入图片描述
    然后通过 kill 3781 就可以关闭进程了.
    补充:

    1. kill -9 来强制终止退出, 例如: kill -9 3781
    2. 特殊用法:
      kill -STOP [pid]
      发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。
      kill -CONT [pid]
      发送SIGCONT (19,18,25)重新开始一个停止的进程。
      kill -KILL [pid]
      发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。
      kill -9 -1
      终止你拥有的全部进程。

    方法二: killall 通过程序的名字,来杀死进程

    例如: killall firefox
    注意: 该命令可以使用 -9 参数来强制杀死进程, killall -9 firefox

    方法三: pkill 通过程序的名字, 直接杀死所有进程
    例如: pkill firefox

    方法四: 通过xkill 可以杀死图形程序应用, 例如firefox崩溃无响应,可以使用该命令.
    例如: 用法xkill , 会出现一个白色的x, 然后用鼠标单击想要杀死的应用,如图

    //====================================================================
    下面来了解相关命令:

    一、查看进程的命令 有ps、pstree、pgrep等:

    1、ps
    显示进程信息,参数可省略
    -aux 以BSD风格显示进程 常用
    -efH 以System V风格显示进程
    -e , -A 显示所有进程
    a 显示终端上所有用户的进程
    x 显示无终端进程
    u 显示详细信息
    f 树状显示
    w 完整显示信息
    l 显示长列表

    在终端中执行ps aux,
    各列输出字段的含义:

    USER 进程所有者
    PID 进程ID
    PPID 父进程
    %CPU CPU占用率
    %MEM 内存占用率
    NI 进程优先级。数值越大,占用CPU时间越少
    VSZ 进程虚拟大小
    RSS 页面文件占用
    TTY 终端ID
    STAT 进程状态
    ±–D 不可中断 Uninterruptible sleep (usually IO)
    ±–R 正在运行,或在队列中的进程
    ±–S 处于休眠状态
    ±–T 停止或被追踪
    ±–Z 僵尸进程
    ±–W 进入内存交换(从内核2.6开始无效)
    ±–X 死掉的进程

    ±–< 高优先级
    ±–N 低优先级
    ±–L 有些页被锁进内存
    ±–s 包含子进程
    ±–+ 位于后台的进程组;
    ±–l 多线程,克隆线程 multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

    PID:进程标识符,系统为每一个进程分配一个识别码,称为PID。

    ps命令极为常用,其他命令还有:

    2.pstree
    树状显示进程信息
    -a 显示完整命令及参数
    -c 重复进程分别显示
    -c 显示进程ID PID
    -n 按 PID 排列进程

    3.pgrep <进程名>
    显示进程的PID
    -l 显示进程名和进程PID
    -o 进程起始ID
    -n 进程终止ID

    二、结束进程的命令 有kill、pkill、killall、xkill等:

    kill [信号代码] <进程PID>

    根据PID向进程发送信号,常用来结束进程,默认信号为 -9
    信号代码,可取值如下:
    -l [信号数字] 显示、翻译信号代码
    -9 , -KILL 发送 kill 信号退出
    -6 , -ABRT 发送 abort 信号退出
    -15 , -TERM 发送 Termination 信号
    -1 , -HUP 挂起
    -2 , -INT 从键盘中断,相当于 Ctrl+c
    -3 , -QUIT 从键盘退出,相当于 Ctrl+d
    -4 , -ILL 非法指令
    -11 , -SEGV 内存错误
    -13 , -PIPE 破坏管道
    -14 , -ALRM
    -STOP 停止进程,但不结束
    -CONT 继续运行已停止的进程
    -9 -1 结束当前用户的所有进程

    pkill <进程名>
    结束进程族。如果结束单个进程,请用 kill

    killall <进程名>
    killall和pkill 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉。

    xkill
    在图形界面中点杀进程。
    当xkill运行时鼠标指针变为骷髅图案,哪个图形程序崩溃一点就OK了。如果您想终止xkill ,就按右键取消。
    比如当firefox 出现崩溃不能退出时,点鼠标就能杀死firefox 。
    xkill 调用方法:
    [root@localhost ~]# xkill

    ==========================================================================
    pkill的简单用法

    pkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉。
    必要参数
    -f 显示完整程序
    -l 显示源代码
    -n 显示新程序
    -o 显示旧程序
    -v 与条件不符合的程序
    -x 与条件符合的程序

    选择参数
    -p<进程号> 列出父进程为用户指定进程的进程信息
    -t<终端> 指定终端下的所有程序
    -u<用户> 指定用户的程序

    应用方法:
    #pkill 正在运行的程序名
    举例:
    在这里插入图片描述
    Java代码
    [root@localhost beinan]# pgrep -l gaim
    2979 gaim
    [root@localhost beinan]# pkill gaim

    也就是说:

    kill 对应的是 PID

    pkill 对应的是COMMAND

    例如在Ubuntu中强制结束一个已成僵尸的名称为:firefox,PID为:1603的进程,可以如下操作:

    方法一:

    (1)ctrl+alt+t,调出终端,输入 top,然后就可以看到现在系统的进程,是按占用资源从多到少排列的。

    找到要关掉的进程,记下该进程第一列的数字编号(假设是xx),然后输入q,退回终端。

    (2)输入:sudo kill xx(对应刚才的编号)。

    方法二:

    ctrl+alt+t,调出终端,输入:sudo pkill firefox

    范例1: 杀死指定进程
    在这里插入图片描述

    Java代码
    root@snail-hnlinux:~# ps -A //显示所有进程
    PID TTY TIME CMD
    1 ? 00:00:03 init
    2 ? 00:00:00 kthreadd
    3 ? 00:00:00 migration/0
    4 ? 00:00:00 ksoftirqd/0
    5 ? 00:00:00 watchdog/0
    ……忽略部分
    28382 ? 00:00:00 gvfsd-http
    28391 ? 00:07:07 software-center
    30467 ? 00:00:31 designer-qt4
    30487 ? 00:00:06 gnome-terminal
    30488 ? 00:00:00 gnome-pty-helpe
    30489 pts/0 00:00:00 bash
    30670 ? 00:00:00 debconf-communi
    30749 pts/0 00:00:17 gedit
    31155 ? 00:00:00 dhclient
    31325 ? 00:00:01 sshd
    31327 ? 00:00:00 sshd
    31400 pts/1 00:00:00 bash
    31485 pts/2 00:00:00 bash
    31653 ? 00:00:00 aptd
    31658 pts/1 00:00:00 ps
    root@snail-hnlinux:~# pidof sshd //查看与sshd相关进程
    31327 31325 2095
    root@snail-hnlinux:~# pkill -9 sshd //杀死指定进程

    范例2:杀死同义终端下的进程
    在这里插入图片描述

    Java代码
    root@snail-hnlinux:~# pkill -t tty1 //杀死终端1下的所有进程

    范例3: 杀死指定用户进程
    在这里插入图片描述

    Java代码
    root@snail-hnlinux:~# pkill -u hnlinux

    范例4:反向选择
    在这里插入图片描述
    Java代码
    root@snail-hnlinux:~# pkill -vu hnlinux //杀死不属于hnlinux用户的所有进程

  • 相关阅读:
    P10.2机器学习笔记--李宏毅(self-attention机制)
    2023计算机毕业设计SSM最新选题之java企业绩效考核系统x73jw
    车牌识别平台开源(支持蓝牌、绿牌,准确率高达96%)
    数据结构——栈与队列
    ARM架构与调测调优实战
    服务器连接校园网
    NoSQL常用数据结构 LSM Tree 简介
    分布式事务Seata源码解析12:全局事务执行流程之全局事务回滚
    【023】Springboot+vue+mysql员工考勤管理系统(多角色登录、请假、打卡)(含源码、数据库、运行教程)
    [源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (4)
  • 原文地址:https://blog.csdn.net/weixin_40673765/article/details/127920622