前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux中kill,pkill和killall杀死进程

linux中kill,pkill和killall杀死进程

作者头像
入门笔记
发布2022-06-02 19:23:50
2.2K0
发布2022-06-02 19:23:50
举报
文章被收录于专栏:入门小站
杀死命令用法

的通用语法kill command是:

代码语言:javascript
复制
# kill [signal or option] PID(s)

为一个kill command一种Signal Name可能:

代码语言:javascript
复制
Signal Name  Signal Value   Behaviour

SIGHUP         1          Hangup
SIGKILL         9          Kill Signal
SIGTERM         15          Terminate

从上面的行为显然,SIGTERM是杀死进程的默认和最安全的方法。SIGHUP是一种比杀死进程更不安全的方式SIGTERM.SIGKILL是上面三种中最不安全的方式,kill 掉一个进程,不保存就终止进程。

为了杀死进程,我们需要知道进程的进程ID使用PID查找Linux进程名称。一种Process是一个程序的实例。每次程序启动时,自动生成一个唯一的PID

列出所有正在运行的 Linux 进程

代码语言:javascript
复制
# ps -A
输出
代码语言:javascript
复制
PID TTY         TIME CMD
 1 ?        00:00:01 init
 2 ?        00:00:00 kthreadd
 3 ?        00:00:00 migration/0
 4 ?        00:00:00 ksoftirqd/0
 5 ?        00:00:00 migration/0
 6 ?        00:00:00 watchdog/0
 7 ?        00:00:01 events/0
 8 ?        00:00:00 cgroup
 9 ?        00:00:00 khelper
10 ?        00:00:00 netns
11 ?        00:00:00 async/mgr
12 ?        00:00:00 pm
13 ?        00:00:00 sync_supers
14 ?        00:00:00 bdi-default
15 ?        00:00:00 kintegrityd/0
16 ?        00:00:00 kblockd/0
17 ?        00:00:00 kacpid
18 ?        00:00:00 kacpi_notify
19 ?        00:00:00 kacpi_hotplug
20 ?        00:00:00 ata/0
21 ?        00:00:00 ata_aux
22 ?        00:00:00 ksuspend_usbd
代码语言:javascript
复制
# pidof mysqld
输出
代码语言:javascript
复制
1684

另一种方法是

代码语言:javascript
复制
# ps aux | grep mysqld
输出
代码语言:javascript
复制
root      1582  0.0  0.0   5116  1408 ?        S    09:49   0:00 
/bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql 
--socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid 
--basedir=/usr --user=mysql

mysql     1684  0.1  0.5 136884 21844 ?        Sl   09:49   1:09 
/usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql 
--log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid 
--socket=/var/lib/mysql/mysql.sock

root     20844  0.0  0.0   4356   740 pts/0    S+   21:39   
0:00 grep mysqld

如何在 Linux 中杀死进程

在我们提前执行之前kill command, 一些需要注意的要点:

  • 用户可以杀死他的所有进程。
  • 一个用户不能杀死另一个用户的进程。
  • 用户不能终止系统正在使用的进程。
  • root 用户可以杀死系统级进程和任何用户的进程。

执行相同功能的另一种方法是执行pgrep命令。

代码语言:javascript
复制
# pgrep mysql
输出
代码语言:javascript
复制
3139

杀掉上面的进程PID,使用如图所示的kill命令。

代码语言:javascript
复制
kill -9 3139

上面的命令将杀死具有pid=3139

另一种执行相同功能的方法可以重写为。

代码语言:javascript
复制
# kill -SIGTERM 3139

kill -9 PID类似于kill -SIGKILL PID反之亦然。

如何在 Linux 中使用进程名称杀死进程

代码语言:javascript
复制
# pkill mysqld

一次杀死多个进程。

代码语言:javascript
复制
# kill PID1 PID2 PID3
or
# kill -9 PID1 PID2 PID3
or
# kill -SIGKILL PID1 PID2 PID3

如果一个进程有太多实例和许多子进程,我们有一个命令killall或者pkill.这两个是该系列中唯一的命令,它将进程名称作为参数代替进程编号。

代码语言:javascript
复制
# killall [signal or option] Process Name
Or
# pkill Process Name

杀死所有mysql instances连同子进程,使用如下命令。

代码语言:javascript
复制
# killall mysqld
OR
# pkill mysqld

可以使用以下任何命令来验证进程的状态。

代码语言:javascript
复制
# service mysql status
OR
# systemctl status mysql
# pgrep mysql
# ps -aux | grep mysql

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 杀死命令用法
  • 列出所有正在运行的 Linux 进程
    • 输出
      • 输出
        • 输出
        • 如何在 Linux 中杀死进程
          • 输出
          • 如何在 Linux 中使用进程名称杀死进程
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档