Linux进程管理ps
进程常用命令
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
,User
和 Args
参数显示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
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
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恢复程序
守护进程
## nohup和&可以不需要终端运行程序,screen和hohup类似
使用nohup与& 符号配合运行一个命令
nohup 命令使进程忽略hangup(挂起)信号
守护进程(daemon)和一般进程有什么差别呢?
#使用screnn命令
screen进入sreen环境
ctrl+a d退出(detached)screen环境
screen -ls 查看screen的会话
screen -r sessionid 恢复会话