进程常用命令

https://blog.51cto.com/c959c/5331522
进程管理的作用:

  • 判断服务器健康状态
  • 查看系统中所有进程
  • 杀死进程
    在这里插入图片描述
  • pstree
  • top
  • pidof
  • nice
  • killall

ps查看进程

https://www.linuxcool.com/ps
https://wangchujiang.com/linux-command/c/ps.html

查看安全信息

参数 -e 显示所有进程信息,-o 参数控制输出。Pid,UserArgs参数显示PID,运行应用的用户和该应用。

## -e 显示所有进程信息
## -o 参数控制输出
ps -eo pid,user,args

在这里插入图片描述

常见的5种进程状态

  • R(运行)
  • S(中断)
  • D(不可中断)
  • Z(僵死)
  • T(停止)

ps查看所有进程

# -a 显示所有用户进程
ps -a

# 以Linux查看系统中所有进程名(只显示进程名)
## -A 显示所有程序
ps -A

## -e:此选项的效果和指定"A"选项相同。
### e:列出程序时,显示每个程序所使用的环境变量。
ps -e

Linux进程管理ps-小白菜博客
在这里插入图片描述

BSD风格打印

# BSD风格打印查看系统中所有进程
## -a 所有用户
## -u 以用户为主的格式来显示程序状况
## -x 显示所有程序(带程序路径)
ps aux

在这里插入图片描述

ps常用查看命令按内存或CPU排序

# 以内存占用排序
ps -eo pid,ppid,cmd,%mem,%cpu --sort=%mem | head

# 以CPU占用排序
ps -eo pid,ppid,cmd,%mem,%cpu --sort=%cpu | head

# 动态查看
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=%mem |head'

在这里插入图片描述

完整格式

# 完整格式
ps -ef

ps常见问题

Linux查看进程和线程

https://blog.csdn.net/jiangbing9293/article/details/48053379

ps -eLf|more
  • 1、使用 ps -ef |grep 进程名 找到该进程的pid
  • 2、执行top命令
  • 3、输入r后提示输入pid,回车
  • 4、输入要求输入优先级权值(-19到19)值越小表示优先级越高,输入-19,回车。设置完成。

ps -aux显示不全被截断

PS命令默认显示的命令长度只有80字符,后面的字符会被截断.

# ps后面加w参数,可以加多个w
ps -auxww

查看僵尸进程

# 查看僵尸进程
## stat 进程的状态
## lstart 命令开始的时间
## etime 启动了多长时间
ps -A -o stat,ppid,pid,lstart,etime,cmd | egrep "^[Z z]"

# 查看僵尸进程产生的时间
ps -eo pid,lstart,etime,cmd|grep anacron

查看进程目录

Linux进程保存在/proc/;
查看/proc 目录,发现目录下很多以数字开头的目录,
这个数字目录就是 进程号;里面就是进程的内容;
cd /proc/进程号,每个进程号都会生成一个目录,fb目录下是当前进程的活动
在这里插入图片描述

/proc目录下的数字,就是进程号

# 查看进程目录
ls /proc/

在这里插入图片描述

pstree查看进程树

# 先要安装psmisc
yum install psmisc -y

# 查看进程树
pstree

在这里插入图片描述

top查看动态进程

# 查看动态进程
top

## -c 提供完整的进程路径及名称
## -d 5 设定每隔5秒刷新一次信息
top -cd5

在这里插入图片描述

# 查看线程ID 
## top默认只能查看进程ID,—H查看线程ID
top -H

在这里插入图片描述

top查看指定pid

## -c 提供完整的进程路径及名称
## -d 5 设定每隔5秒刷新一次信息
## -p pid 查看指定pid的资源占用
top -cd 5 -p 833

在这里插入图片描述

htop

# 安装epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

# 安装htop
yum install htop -y

# 查看
htop

glances

# 安装glances
pip3 install glances

# 执行glances
glances

在这里插入图片描述

kill操作进程

在这里插入图片描述

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

HUP     1    终端挂断
INT     2    中断(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
KILL    9    强制终止
TERM   15    终止
CONT   18    继续(与STOP相反,fg/bg命令)
STOP   19    暂停(同 Ctrl + Z)

kill列出信号名称

https://wangchujiang.com/linux-command/c/kill.html

# 查看可:
kill -l

在这里插入图片描述

kill暂停进程和继续进程

# 暂停进程
kill -s SIGSTOP pid
# 或
kill -STOP pid

# 继续进程
kill -s SIGCONT pid
kill -CONT pid

kill重启进程

# 重启进程:
kill -1 PID

kill根据pid杀死进程

# kill根据pid杀死进程
kill pid

# 强制杀死进程:
kill -9 PID

killall根据进程名杀死一组进程

https://www.runoob.com/linux/linux-comm-killall.html

# 安装killall命令
yum install psmisc -y

# 结束指定进程名
killall 进程名

# 实例: 结束所有bash
killlall -9 bash

pgrep根据名字查pid

参考: https://www.linuxcool.com/pgrep
https://wangchujiang.com/linux-command/c/pgrep.html

-o:仅显示找到的最小(起始)进程号;
-n:仅显示找到的最大(结束)进程号;
-l:显示进程名称;
-P:指定父进程号;
-g:指定进程组;
-t:指定开启进程的终端;
-u:指定进程的有效用户ID;
-x: 与命令名称完全匹配。

# 显示进程名和最小的pid
pgrep -lo httpd
4557 httpd

# 显示进程名和最大的pid
pgrep -ln httpd
4566 httpd

# 查看以root用户运行的bash进程的pid
pgrep -u root bash

在这里插入图片描述

pkill根据名字杀死进程

参考: https://wangchujiang.com/linux-command/c/pkill.html
Linux进程管理ps

pkill 名字

# 示例
## 查看gaim的pid
pgrep -l gaim
2979 gaim

## 结束gaim
pkill gaim

# 强制结束进程
pkill -f trojan

结束ssh会话

# 示例2:
[localhost root yum.repos.d] #w
 18:53:30 up  5:47,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.0.254    18:27    2.00s  0.53s  0.01s w
# 结束pts/0会话
pkill -9 -t pts/0

虚拟内存状态查看命令vmstat

# 语法:vmstat [options] [delay [count]]
# 表示每2秒刷新一次
vmstat 2

# 表示每2秒刷新一次,刷新5次后退出     
vmstat 2 5

在这里插入图片描述

后台进程&

在命令后加上& 就会进入后台进程,但不是所有命令都支持后台

#!/usr/bin/env bash
# 快速检查服务器是否可用
date;
for i in {1..100}; do
    (ping -c 2 rhcsa$i &>>/dev/null && echo "rhcsa$i success" || echo -e "\033[31mrhcsa$i faild\033[0m") &
done
wait;
date

Linux进程相关

调整进程优先级

##renice 对正在进行的进程调整优先级
renice -n 15 19314
#nice -n 10调整进程优先级
nice -n 10

在这里插入图片描述

pwdx查看pid工作目录

# 查看当前pid进程启动时的工作目录
pwdx pid

根据pid查看进程完整信息

# 查看进程完整信息
ls –ali /proc/pid

cwd符号链接的是进程运行目录;
exe符号连接就是执行程序的绝对路径;
cmdline就是程序运行时输入的命令行命令;
environ记录了进程运行时的环境变量;
fd目录下是进程打开或使用的文件的符号连接。
在这里插入图片描述

查看哪些进程占用内存最多

!!!注意: 该软件只支持Centos7,需要使用epel源安装Dstat 0.7.2
Centos8安装的是pcp-dstat 5.3.1,不支持top-mem等参数

dstat --top-mem 1 4

查看哪些进程占用cpu最多

dstat --top-cpu 3 3

查看进程产生的时间

# 查看僵尸进程产生的时间
ps -eo pid,lstart,etime,cmd|grep anacron

命令后面加&后台运行

#  查看运行中的后台运行
jobs
#恢复&后台运行程序为前台运行
fg
#  暂停程序   
catl+z
#恢复后台运行  
bg
#是查看暂停程序    
job
#fg或bg恢复程序

Linux进程管理ps-小白菜博客
Linux进程管理ps-小白菜博客
在这里插入图片描述

守护进程

## nohup和&可以不需要终端运行程序,screen和hohup类似

使用nohup与& 符号配合运行一个命令
    nohup 命令使进程忽略hangup(挂起)信号
守护进程(daemon)和一般进程有什么差别呢?

#使用screnn命令
    screen进入sreen环境
    ctrl+a d退出(detached)screen环境
    screen -ls 查看screen的会话
    screen -r sessionid 恢复会话

在这里插入图片描述