Linux 学习笔记 06 —— 进程管理(1) 查看、杀死

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

FLAGS 与进程相关的数字标识

  1. 列出所有进程

方式一:

songyangji@SongyangJi-Ubuntu-DeskStop:~$ ps -aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.2 101680 10384 ? Ss 19:09 0:01 /sbin/init splash

root 2 0.0 0.0 0 0 ? S 19:09 0:00 [kthreadd]

root 3 0.0 0.0 0 0 ? I< 19:09 0:00 [rcu_gp]

root 4 0.0 0.0 0 0 ? I< 19:09 0:00 [rcu_par_gp]

方式二:

songyangji@SongyangJi-Ubuntu-DeskStop:~$ ps -ef

UID PID PPID C STIME TTY TIME CMD

root 1 0 0 3月11 ? 00:00:01 /sbin/init splash

root 2 0 0 3月11 ? 00:00:00 [kthreadd]

root 3 2 0 3月11 ? 00:00:00 [rcu_gp]

root 4 2 0 3月11 ? 00:00:00 [rcu_par_gp]

  1. 显示某个用户的进程

[root@itcast ~]# ps -u root

PID TTY TIME CMD

1 ? 00:01:48 systemd

2 ? 00:00:00 kthreadd

3 ? 00:00:21 ksoftirqd/0

5 ? 00:00:00 kworker/0:0H

  1. 显示进程名进程信息

[root@itcast ~]# ps -C bash

PID TTY TIME CMD

10565 pts/1 00:00:00 bash

11145 pts/1 00:00:00 bash

86546 pts/0 00:00:00 bash

[root@itcast ~]#

  1. 通过进程号显示进程详细信息

songyangji@SongyangJi-Ubuntu-DeskStop:~$ ps -p 51172

PID TTY TIME CMD

51172 pts/0 00:00:00 bash

  1. 指定显示字段

[root@itcast ~]# ps -e -o pid,uname,pcpu,pmem,comm

PID USER %CPU %MEM COMMAND

1 root 0.0 0.1 systemd

2 root 0.0 0.0 kthreadd

3 root 0.0 0.0 ksoftirqd/0

5 root 0.0 0.0 kworker/0:0H

7 root 0.0 0.0 migration/0

  1. 查找特定进程信息 ( 管道| + grep)

[root@itcast ~]# ps -ef | grep ssh

root 1183 1 0 8月08 ? 00:00:00 /usr/sbin/sshd -D

deng 2286 2111 0 8月08 ? 00:00:01 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c “env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic”

root 10561 1183 0 21:24 ? 00:00:00 sshd: deng [priv]

deng 10563 10561 0 21:24 ? 00:00:00 sshd: deng@pts/1

root 16403 11145 0 22:18 pts/1 00:00:00 grep --color=auto ssh

[root@itcast ~]#

pstree


这个命令和ps差不多,只不过是以树状图的形式显示出来。

Linux系统中pstree命令的英文全称是“process tree”,即将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root)。

如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程。

  • 使用

pstree 参数

-a  显示每个程序的完整指令,包含路径,参数或是常驻服务的标示。

-c  不使用精简标示法。

-G  使用VT100终端机的列绘图字符。

-h  列出树状图时,特别标明执行的程序。

-H<程序识别码>  此参数的效果和指定"-h"参数类似,但特别标明指定的程序。

-l  采用长列格式显示树状图。

-n  用程序识别码排序。预设是以程序名称来排序。

-p  显示程序识别码。

-u  显示用户名称。

-U  使用UTF-8列绘图字符。

-V  显示版本信息。

  1. 以树状图显示进程

songyangji@SongyangJi-Ubuntu-DeskStop:~$ pstree

systemd─┬─ModemManager───2*[{ModemManager}]

├─NetworkManager───2*[{NetworkManager}]

├─accounts-daemon───2*[{accounts-daemon}]

├─avahi-daemon───avahi-daemon

├─colord───2*[{colord}]

├─cron

├─cups-browsed───2*[{cups-browsed}]

├─cupsd

├─dbus-daemon

├─gdm3─┬─gdm-session-wor─┬─gdm-x-session─┬─Xorg───9*[{Xorg}]

│ │ │ ├─gnome-session-b─┬─ssh-agent

│ │ │ │ └─2*[{gnome-session-b}]

│ │ │ └─2*[{gdm-x-session}]

│ │ └─2*[{gdm-session-wor}]

│ └─2*[{gdm3}]

  1. 显示当前所有进程的进程号和进程id

[root@itcast ~]# pstree -p

systemd(1)─┬─ModemManager(676)─┬─{ModemManager}(716)

│ └─{ModemManager}(719)

├─NetworkManager(680)─┬─dhclient(9982)

│ ├─{NetworkManager}(745)

│ └─{NetworkManager}(749)

├─VGAuthService(681)

├─abrt-watch-log(671)

├─abrt-watch-log(672)

├─abrtd(632)

  1. 显示指定进程号树状信息

[root@itcast ~]# pstree 10565

bash───su───bash───pstree

[root@itcast ~]#

kill


kill命令用来删除执行中的程序或工作。

  • 列出所有信号名称

[deng@itcast ~]$ kill -l

  1. SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

  2. SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1

  3. SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

  4. SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

  5. SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

  6. SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

  7. SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

  8. SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

  9. SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

  10. SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

  11. SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

  12. SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

  13. SIGRTMAX-1 64) SIGRTMAX

[deng@itcast ~]$

只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。

下面是最常用的信号。

HUP 1 终端断线

INT 2 中断(同 Ctrl + C)

QUIT 3 退出(同 Ctrl + \)

TERM 15 终止

KILL 9 强制终止

CONT 18 继续(与STOP相反, fg/bg命令)

STOP 19 暂停(同 Ctrl + Z)

最常用的就是 -9 信号

[deng@itcast ~]$ sleep 3000 &

[1] 122936

[deng@itcast ~]$ ps

PID TTY TIME CMD

91509 pts/1 00:00:01 bash

122936 pts/1 00:00:00 sleep

123053 pts/1 00:00:00 ps

[deng@itcast ~]$ kill -9 122936

[deng@itcast ~]$

类似杀死进程的命令还有 pkillkillall命令。

pkill


  • 根据用户来杀死进程

pkill -u user_name

  • 根据进程名来杀死进程(模糊匹配)

pkill your_bash

比如:

将自己的这个终端给杀死。

pkill -9 bash

init


init命令是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值