Linux进程管理ps
Linux进程管理ps
- 进程概念
- 常见的5种进程状态
- 进程常用命令
- ps查看进程
- 查看安全信息
- ps查看所有进程
- BSD风格打印
- ps常用查看命令按内存或CPU排序
- 完整格式
- ps常见问题
- 调整进程优先级
- ps -aux显示不全被截断
- 查看僵尸进程
- 查看进程目录
- pstree查看进程树
- top查看动态进程
- top查看指定pid
- `htop`
- `glances`
- kill操作进程
- kill列出信号名称
- kill暂停进程和继续进程
- kill重启进程
- kill根据pid杀死进程
- `killall`根据进程名杀死一组进程
- pgrep根据名字查pid
- `pkill`根据名字杀死进程
- 结束ssh会话
- 虚拟内存状态查看命令vmstat
- Linux进程相关
- pwdx查看pid工作目录
- 根据pid查看进程完整信息
- 查看哪些进程占用内存最多
- 查看哪些进程占用cpu最多
- 查看进程产生的时间
- 命令后面加&后台运行
- 将程序放入后台
- 查看运行中的后台运行
- 恢复&后台运行程序为前台运行
- 将任务放入后台并且暂停
- 查看暂停程序
- 将暂停的任务恢复后台运行
- 后台进程&示例
- nohup退出账户时进程不结束
进程概念
进程(Process)是计算机中已运行程序的实体,是程序的一个具体实现。当程序被系统调用到内存以后,系统会给程序分配一定的资源(内存,设备等等)然后进行一系列的复杂操作,使程序变成进程以供系统调用。进程除包含程序的静态代码(text),还包含堆(heap)、栈(stack)、数据(data)段,堆用来在进程正在运行时分配所需的内存,栈用来保存临时数据(如函数参数、返回地址、局部变量),数据段用来保存已初始化的变量。
常见的5种进程状态
- R(运行)(TASK_RUNNING):
● 正在运行或在运行队列中等待。 - S(中断)(TASK_INTERRUPTIBLE):
● 休眠中, 受阻, 在等待某个条件的形成或接受到信号。 - D(不可中断)(TASK_UNINTERRUPTIBLE) :
● 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。 - Z(僵死) (TASK_ZOMBIE):
● 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放。 - T(停止)(TASK_STOPED):
● 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
进程状态变化
:
进程常用命令
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
ps命令: ps命令是最基本又非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等,大部分进程信息都是可以通过执行该命令得到的。例如显示系统中终端上的所有进行进程。
选项 | 描述 |
---|---|
-e | 显示所有进程。 |
-f | 全格式。 |
-h | 不显示标题。 |
-l | 使用长格式。 |
-w | 宽行输出。 |
-a | 显示终端上的所有进程,包括其他用户的进程。 |
-r | 只显示正在运行的进程。 |
-x | 显示没有控制终端的进程。 |
查看安全信息
参数 -e
显示所有进程信息,-o
参数控制输出。Pid
,User
和 Args
参数显示PID
,运行应用的用户
和该应用。
## -e 显示所有进程信息
## -o 参数控制输出
ps -eo pid,user,args
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常见问题
ps命令使用中出现的一些常见问题
调整进程优先级
https://blog.csdn.net/omaidb/article/details/118720971
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)才可以无条件终止进程,其他信号
进程都有权忽略
。
编号 | 信号名 | 含义 |
---|---|---|
0 | EXIT | 程序退出时收到该信息。 |
1 | HUP |
终端挂断 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。 |
2
|
INT |
中断(同 Ctrl + C) 表示结束进程,但并不是强制性的,常用的 “Ctrl+C” 组合键发出就是一个 kill -2 的信号。 |
3 | QUIT | 退出(同 Ctrl + \) |
9
|
KILL |
强制终止 杀死进程,即强制结束进程。 |
11 | SEGV | 段错误。 |
15
|
TERM | 正常结束进程,是 kill 命令的默认信号。 |
18 | CONT | 继续(与STOP相反,fg/bg命令) |
19
|
STOP | 暂停(同 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] #w18: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
Linux进程相关
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
命令后面加&后台运行
前台
进程和用户交互
,需要较高的响应速度,优先级较高;前台进程就是用户使用的有控制终端的进程。后台
进程几乎不和用户交互
,优先级略低。 Linux 的守护进程(Daemon)是一种特殊的后台进程,其独立于终端并周期性地执行任务或等待唤醒
&
使用它在后台运行一个占用时间不长的进程。
nohup
使用它在后台运行一个命令,即使在用户退出时也不受影响。
Linux下常用以下命令管理进程,包括前后台切换及启停:
&
:将 & 放在命令的最后,可以把这个命令放到后台执行Ctrl + z
:当前台正在执行一个命令时,按键 Ctrl + z,将其放到后台并暂停Ctrl + c
:中断当前正在执行的命令jobs
:查看当前有多少正在后台运行的命令fg
:将后台中的命令调至前台继续运行bg
:将后台任务唤醒,并在后台运行
将程序放入后台
# 以后台运行程序
exe_name &
查看运行中的后台运行
# 查看运行中的后台运行
jobs -l
说明:以上输出表示当前终端有1个后台工作进程sleep,工作号
为 1
,状态是运行标志是"+
"。 "+
"号代表最近一个放入后台的工作
,也是工作恢复时默认恢复的工作。 "-
"号代表倒数第二个放入后台的工作
,而第三个以后的工作
就没有"+-"标志
了。
恢复&后台运行程序为前台运行
# 恢复&后台运行程序为前台运行
fg job_id
将任务放入后台并且暂停
# 将任务放入后台并且暂停
catl+z
查看暂停程序
# 查看暂停程序
job
将暂停的任务恢复后台运行
# 恢复后台运行
bg job_id
后台进程&示例
在命令后加上&
就会进入后台进程
,但不是所有命令都支持后台
#!/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
nohup退出账户时进程不结束
nohup
和&
可以不在终端前台
运行程序,使用nohup
与&
符号配合运行一个命令
#
nohup command &
nohup
命令可以在你退出帐户之后继续运行相应的进程。
nohup
就是不挂起
的意思(no hang up),该命令使进程忽略hangup(挂起)信号
。
# 退出终端时不结束进程,并将输出写入到文件
nohup command > myout.file 2>&1
守护进程(daemon)和一般进程有什么差别呢?
Linux进程管理ps相关推荐
- Linux进程管理(ps,pgrep,kill,killall,pkill,nohup,bg,fg)
文章目录 Linux进程管理 什么是进程?什么是线程?二者的区别? Linux进程管理命令 ps命令 使用方法案例 ps带减号和不带减号的区别 查看进程树的命令pstree pgrep命令 kill命 ...
- Linux 进程管理 ps、top、kill
文章目录 进程管理 进程字段名 进程的状态 查看进程ps(Process Status) Unix风格的参数 BSD风格的参数 GNU风格的参数 案例1:将目前属于本用户这次登入的 PID 与相关信息 ...
- linux进程管理 ps,Linux - 进程管理,ps与top
一个运行的程序,可能有多个进程. PID进程ID. UID启动进程的ID. 进程所属组GID. 进程的状态R运行.S睡眠.Z僵尸. 父进程管理子进程,父进程终止的时候子进程也会终止. 常用的组合为: ...
- Linux进程管理之ps的使用
主题Linux进程管理之ps工具的使用 一ps工具的介绍 ps: process state 进程状态 ps - report a snapshot of the current processes ...
- linux ps 进程组,linux进程管理(2)---进程的组织结构
一.目的 linux为了不同的进程管理目的,使用了不同的方法组织进程之间的关系,为了体现父子关系,使用了"树形"图:为了对同一信号量统一处理,使用了进程组:为了快速查找某个进程,使 ...
- Linux进程管理四大工具ps \dstat\ top\ htop
Linux进程管理之"四大名捕" 一.四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手"无情&qu ...
- linux进程管理机制,linux进程管理,linux进程管理机制
linux进程管理,linux进程管理机制 一.基本介绍 1.在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号 2.每一个进程,都会对应一个父进程,而这个父进程 ...
- Linux—进程管理
1. 进程的概念 Linux是一个多用户多任务的操作系统.多用户是指多个用户可以在同一时间使用同一个linux系统:多任务是指在Linux下可以同时执行多个任务,更详细的说,linux采用了分时管理的 ...
- Linux 进程管理工具
Linux进程管理命令: pstree.ps.top.pidof.htop.glances.pmap.vmstat.dstat.kill.pkill.job.bg.fg.nohup.pgrep ...
最新文章
- Keepalived+LVS+Nginx+DRBD+Heartbeat+Zabbix集群架构
- WebSocket数据加密——AES与RSA混合加密
- mysql备份到带库_RMAN备份恢复——备份到带库的性能
- 代码注释(图案:键盘)
- JAVA Map 和 List 排序方法
- IBM MQ 使用指南
- sql server 2008安装图解
- Windows设置程序 .bat 开机自启动
- 洛谷 P1560 [USACO5.2]蜗牛的旅行Snail Trails(不明原因的scanf错误)
- 2019JS必看面试题
- 电力监控系统的研究与应用
- centos下Vim编辑器配置
- vue 回车事件 失焦事件
- 转载 | 2020年腾讯技术工程十大热门文章
- IOS系统自带方法将汉语转换成拼音
- 卷积神经网络理解(一):滤波器的意义
- Spring 教程(一)
- Java一对多、多对多关系示例
- 指数函数----e是什么?
- e的根号x次方的不定积分:整体代换+分部积分法