Liunx运维(九)-Liunx进程管理命令

文档目录:

一、ps:查看进程

二、pstree:查看进程状态树

三、pgrep:查找匹配条件的进程

四、kill:终止进程

五、killall:通过进程名终止进程

六、pkill:通过进程名种植进程

七、top:实时显示系统中各个进程的资源占用状况

八、nice:调整程序运行时的优先级

九、renice:调整运行中的进程的优先级

十、nohup:用户退出系统进程继续工作

十一、strace:跟踪进程的系统调用

十二、ltrace:跟踪进程调用库函数

十三、runlevel:输出当前运行级别

十四、init:初始化 Liunx 进程

十五、service:管理系统服务

--------------------------------------- 分割线:正文 --------------------------------------------------------

一、ps:查看进程

1、ps #当前终端窗口的进程 PID 进程标识符 TTY 进程所属的终端控制台 TIME 进程所使用的总的 CPU 时间 CMD 正在执行的命令行

 2、ps -ef #使用 UNIX 格式输出每个进程信息 UID 进程所属 UID,PPID 父进程 C 为 cpu 占比 STIME 进程开始时间 tty 无法终端?本地 tty1-6,网络 pts/0

 3、ps -ef | grep ssh #过滤进程

 4、 ps aux #使用 BSD 格式显示进程信息 vsz 虚拟内存量 stat 该进程的状态:r 运行 S 中断睡眠 d 不可中断睡眠 t 侦测 / 停止 z 终止 + 前台 l 多线程 N 低优先级 < 高优先级 s 进程领导者 L 页面锁定到内存

 5、ps -u root # UNIX 格式参数,使用用户的相关进程

 6、 ps -l #以详细的格式显示进程状态 PRI:优先执行顺序 NI-nice 值 ADDR- 进程在内存哪个部分,running 一般是 - SZ 使用掉内存大小 WCHAN- 目前进程是否运行中 - 正在运

 7、ps -eH #-e 显示所有进程,-H 参数显示进程数,UNIX 格式

8、ps axf|grep ssh #ax 显示所有进程,f 显示进程数,BSD 格式

 9、ps -eo '%P%y%x%c'|grep ssh  #输出指定字段 通过 man ps 查询字段 p-ppid y-tty x-time c-command

 10、ps -eo pid,user,args --sort pid | grep ssh  #标准格式输出指定字段 ,并且根据某个字段排序

 

二、pstree:查看进程状态树

1、pstree #不指定进程 pid 号,或者不指定用户名,即以 init 进程为根进程,显示系统所有进程信息

 2、pstree root #显示指定用户的进程

 3、pstree -u #显示进程所属的用户组

 

 三、pgrep:查找匹配条件的进程

1、pgrep crond #显示指定进程的 pid,结合 ps 与 grep 功能

 2、pgrep -u root #-u 显示指定 root 用户的所有进程号

 

 四、kill:终止进程

1、kill -l #显示系统的所有信号

 2、kill -l SIGKILL #对信号名与数字进行互换

3、常用信号说明:

HUP(1):挂起 - 通常因终端掉线或用户退出而引发

INT(2):中断 - 通常是按下 ctrl+c 组合键来触发

QUIT(3):退出 - 通常是按下 ctrl+\ 组合键来触发

KILL(9):立即结束进程的运行

TERM(15):终止 - 通常在系统关机时发送

TSTP(20):暂停进程的运行 - 通常是按下 ctrl+z 组合键来触发

4、kill 1474 #默认使用信号 15 终止进程,常用

 5、kill -9 1474 #强制关闭进程

  6、kill -0 1474 #特殊信号,用于进程检查

 

 五、killall:通过进程名终止进程

1、killall crond #终止定时服务进程

 2、killall -w crond #-w 会看到等待几秒后结束命令操作

3、killall -u lulu nginx #终止 lulu 用户的所有 nginx 进程

 

 六、pkill:通过进程名种植进程

1、pkill crond #终止定时任务进程

 2、pkill -t tty1 #-t 杀死指定终端的进程(正在编辑 /etc/rc.local)

 3、pkill -u root #杀死指定用户的所有进程

 

七、top:实时显示系统中各个进程的资源占用状况

1、top #交互式命令

说明:

第一行:任务列队信息,同 uptime 命令的执行结果,包含:当前系统时间,系统运行时间,当前登录的用户,1m/5m/15m 的平均负载情况

第二行:tasks 为任务 (进程),系统共 104 个进程,其中运行中 1 个,103 个休眠,0 个 stoped,0 个僵死

第三行:cpu 状态:us- 用户空间占比,sy- 内核空间占比,ni- 改变过优先级的进程占比,id- 空闲 cpu 占比,wa-i/o 等待占比,hi- 硬中断占比,si- 软中断占比,st- 虚拟机占比

第四行:内存状态:total- 物理内存总量,used- 使用中内存总量,free- 空闲内存总量,buffers- 缓冲的内存量

第五行:swap 交换分区信息:total- 交换区总量,used- 使用的交换区总量,free- 空闲交换区总量,cached- 缓存的内存量

第六行:空行

第七行:各进程的状态监控:PID- 进程 id,USER- 进程所有者,

 2、top 再按照 1:显示多核不同 cpu 的信息

 3、top -b #以批处理模式显示进程信息,不停向下刷新

4、top -c #使用参数 -c 显示进程的完整路径

 5、top -d 3 #指定更新周期为 3 秒

6、top -n 2 #指定更新次数为 2 次后退出

7、top -p 1403 #-p 指定进程号监控

 8、top 中 b、z、x 为高亮显示,> 与 < 可以向右或向左改变排序列

 

八、nice:调整程序运行时的优先级

1、nice #显示当前系统默认的程序运行优先级为 0

 2、nice nice #以默认值 10 来调整第二个 nice 命令运行的优先级

 3、nice nice nice #第二个 nice 命令运行优先级的基础上再加 10,为 20,但是最小程序运行优先级为 19

 4、ps -l #查看进程的优先级(PRT 越小优先级越高,NI- 优先值)

 5、nice -n -10 vim test2 & 使用 nice 调整为 -10

 

九、renice:调整运行中的进程的优先级

renice -n -5 -p 1471 #-p 指定值为 2711 的进程,调整 NI 值为 5

 

十、nohup:用户退出系统进程继续工作

nohup 命令将输出重定向到终端,默认当前目录的 nohup.out 文件中,如果当前目录文件不可写,则输出重定向到 $HOME/nohup.out 文件中

1、nohup ping www.baidu.com #当前终端已 hang 住,此时强制关闭当前终端,ping 命令依然会在后台运行

 另一个 ssh 终端打开

 2、nohup ping www.baidu.com & #一般 nohup 配合 & 运行,让程序直接后台运行

 

十一、strace:跟踪进程的系统调用

用于检查一个应用程序所使用的系统调用以及它接收的系统信息。strace 会追踪程序运行时整个生命周期,输出每一个系统调用的名字、参数、返回值、消耗时间等,是高级运维和开发人员排查问题的杀手锏

1、strace -tt -f /usr/bin/ping #-f 跟踪目标进程,以及子进程,-tt 每一行前加上时间信息

 2、strace -tt -f -e trace=file /usr/bin/ping #trace=file 只跟踪与文件操作有关的系统调用

 3、strace -tt -f -e trace=file -p 1597 #-p 跟踪指定的进程

 4、strace -c /usr/bin/ping #-c 为进程所有系统调用做一个统计分析

 5、strace -c -o tongji.log /usr/bin/ping #-o 将 strace 结果输出到文件

 6、strace -T /usr/bin/ping #-T 将每个系统调用花费的时间打印出来,花销在调用行最右边的尖括号内

 

十二、ltrace:跟踪进程调用库函数

ltrace 能跟踪显示调用了哪个库函数,用法与 strace 非常相似

1、ltrace /usr/bin/ping #ltrace 接需要检测的命令语句

 2、ltrace -p 1665 #-p 跟踪指定进程号

 

十三、runlevel:输出当前运行级别

1、runlevel #查看当前系统的运行级别

 2、系统级别说明

0:停机

1:单用户模式

2:无网络的多用户模式

3:多用户模式

4:未使用

5:图形界面多用户模式

6:重启

 

十四、init:初始化 Liunx 进程

init 为 liunx 下进程初始化工具,是所有 Liunx 进程的父进程,根据 /etc/inittab 创建 Liunx 进程

1、init 0 #关机

 2、init 6 #重启

 

十五、service:管理系统服务

service 用于对系统服务进行管理:比如 start、stop、restart、reload、status 等,CentOs7 里被 systemctl 取代

1、service --status-all #显示所有服务状态

 2、service crond stop #停止服务

 3、service crond start #启动服务

 4、 service crond restart #重启服务

 5、service crond status #查看服务状态