Linux进程管理
一、进程
进程:运行的程序
守护进程:一直运行的程序
二、查看进程
1、ps命令
进程快照
常用:
-e 显示所有进程※
-f 额外显示UID、PPID、C与STIME栏位※
常用命令:
# 1、ps -ef #简易查看进程,过滤进程的命令。
[root@linux ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jun02 ? 00:00:06 /usr/lib/systemd/systemd --system --des
root 2 0 0 Jun02 ? 00:00:00 [kthreadd]
root 4 2 0 Jun02 ? 00:00:00 [kworker/0:0H]
root 6 2 0 Jun02 ? 00:00:09 [ksoftirqd/0]
root 7 2 0 Jun02 ? 00:00:00 [migration/0]
root 8 2 0 Jun02 ? 00:00:00 [rcu_bh]
输出信息中各列的说明如下。
UID:开启该进程的用户id
PID:进程的标识号,进程id
PPID:父进程id
C:CPU使用的资源百分比;
STIME:进程开始的时间;
TTY :该进程是在哪个终端机上面运作,若与终端机无关,则显示?,另外, tty1-tty6是本机上面的登入者进程,若为pts/0等,则表示为由网络连接进主机的进程;
TIME:进程所使用的总的CPU时间;
CMD:正在执行的命令行。
# 2、 ps aux
#BSD格式参数,使用a选项和x选项显示所有进程,使用u选项显示进程的用户信息。
[root@linux ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 46368 6700 ? Ss Jun02 0:06 systemd --system --deserialize 18
root 2 0.0 0.0 0 0 ? S Jun02 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< Jun02 0:00 [kworker/0:0H]
输出信息中各列的说明如下。
USER:该进程属于的用户;
PID :该进程的进程号;
%CPU:该进程使用掉的CPU资源百分比;*****
%MEM:该进程所占用的物理内存百分比;*****
VSZ :(Virtual Size)进程占用的虚拟内存量 (单位Kb);*****
RSS :该进程占用的物理内存大小 (单位Kb);*****
TTY :该进程是在哪个终端机上面运作的,若与终端机无关,则显示?,另外, tty1-tty6是本机上面登入者进程,若为pts/0等,表示为由网络连接进主机进程;
STAT:该进程目前的状态
START:该进程被触发启动的时间;
TIME :该进程实际使用 CPU 运作的时间;
COMMAND:该进程的实际命令,[ 方括号 ] 属于内核态的进程。 没有 [ ] 的是用户态进程。。
STAT:该进程目前的状态,主要的状态包括
R :正在运行,或者是可被运行。
S :正在中断睡眠中,可被某些信号(signal) 唤醒。
D :不可中断睡眠。
T :正在侦测或者是停止了。
Z :已经终止,但是其父进程无法正常终止他,造成 zombie (疆尸) 进程的状态。
+ :前台进程。
l :多线程进程。
N :低优先级进程。
< :高优先级进程。
s :进程领导者。
L : 已将页面锁定到内存中。
# 3、pstree:显示进程状态树
pstree命令以树形结构显示进程和进程之间的关系。
[root@linux html]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─abrt-watch-log
├─abrtd
├─agetty
├─anacron
├─auditd───{auditd}
├─crond
├─dbus-daemon───{dbus-daemon}
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─nginx───nginx
├─polkitd───6*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───2*[{vmtoolsd}]
-a 显示启动每个进程对应的完整指令,包含启动进程的路径、参数等
-c 显示的进程中包含子进程和父进程
-h 对现在执行的程序进行特别标注
-n 根据进程PID号来排序输出,默认是以程序名称排序输出的
-p 显示进程的PID
-u 显示进程对应的用户名称
2、top命令
实时显示系统中各个进程的资源占用状况
参数选项 解释说明
-a 将进程按照使用内存排序
-b 以批处理模式显示进程信息,输出结果可以传递给其他程序或写入到文件中。
-c 显示进程的整个命令路径,而不是只显示命令名称
-d 指定每两次屏幕信息刷新之间的时间间隔(top -d 1)
-H 指定这个可以显示每个线程的情况,否则就是进程的总的状态
-i 不显示闲置或者僵死的进程信息
-n top输出信息更新的次数,完成后将退出top命令
-p 显示指定的进程信息(top -p 进程号)
重点:top输出
top - 01:12:32 up 2 days, 2:47, 2 users, load average: 0.00, 0.01, 0.05
第一行:任务队列信息,同uptime命令的执行结果。
01:12:32 当前系统时间。
up 2 days, 2:47 系统已经运行了1天16小时36分。
2 users 当前有2个用户登录系统。
load average: 0.00, 0.01, 0.05 — load average 平均负载情况*****
*****后面的三个数分别是1分钟、5分钟、15分钟的平均负载情况。
【体现系统繁忙的重要简单的查看指标】
CPU是6核,负载超过6就繁忙的临界点.
Tasks: 105 total, 1 running, 104 sleeping, 0 stopped, 0 zombie
第二行,Tasks为任务(进程)。
从上面的信息可以看出,
系统现在共有105个进程,其中处于运行状态的有1个,
104个在休眠(sleep),stoped状态0个,zombie状态(僵死)的有0个。
STAT:该进程目前的状态,主要的状态包括
R :正在运行或者是可被运行。
S :正在中断睡眠中,可被某些信号(signal) 唤醒。
D :不可中断睡眠。
T :正在侦测或者是停止了。
Z :已经终止,但是其父进程无法正常终止他,造成 zombie (疆尸) 进程的状态。
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
第三行,CPU状态信息。
0.0% us (user)用户空间占用CPU的百分比(如:应用程序、执行命令)。*****
0.0% sy (system)内核空间占用CPU的百分比(如:内核进程、硬件磁盘操作)。*****
0.0% ni (nice)改变过优先级的进程占用CPU的百分比。
100.0% id (idle)空闲CPU百分比,数值越大,CPU越空闲。*****
0.0% wa (wait)IO等待占用CPU的百分比。*****
0.0% hi (hard Interrupts)硬中断(Hardware IRQ)占用CPU的百分比。
0.0% si 软中断(Software Interrupts)占用CPU的百分比。
0.0% st 虚拟机占用CPU的百分比。
KiB Mem : 4026136 total, 203768 free, 228476 used, 3593892 buff/cache
第四行,内存状态。
KiB Mem : 995684 total, 87984 free, 234516 used, 673184 buff/cache
内存:
4026136 total #内存一共多大
203768 free #可用内存,剩余内存
228476 used #已经使用的内存
3593892 buff/cache #系统缓存和缓冲占用内存空间
KiB Swap: 2097148 total, 2097148 free, 0 used. 3531892 avail Mem
第五行,swap交换分区信息。
12097148 total 交换区总量。
0k used 使用的交换区总量。
2097148 free 空闲交换区总量。
3531892 avail Mem 可用内存大小
以上两行: cat /proc/meminfo或free -m获取。
从第七行开始,给出的是各进程(任务)的状态监控。
PID 进程id。
USER 进程所有者。
PR 进程优先级。
NI nice值,负值表示高优先级,正值表示低优先级。
==================================================
VIRT 进程使用的虚拟内存总量,单位kb。*****
RES 进程使用的、未被换出的物理内存大小,单位kb。*****
SHR 共享内存大小,单位kb。*****
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程。
%CPU 上次更新到现在的CPU时间占用百分比。*****
%MEM 进程使用的物理内存百分比。*****
===================================================
TIME+ 进程使用的CPU时间总计,单位1/100秒。
COMMAND 进程名称(命令名/命令行)。
3、top快捷键指令
top快捷键指令
1 #查看系统核心总数, 类似于 lscpu(CPUs)
q #退出top
M #按内存使用百分比排序输出
P #按CPU使用百分比排序输出
R #对已排序的列反转排序
###抓重点显示,有助于查看的指令。
x #高亮显示排序的列
z #以彩色信息展示
b #高亮显示处于R状态的进程
>或< #改变排序的列,依然高亮显示。
#top熟悉了解的快捷键
h #查看帮助
l,t,m #显示/隐藏前5行的数据输出
4、杀进程
# 1、杀进程
kill 进程号
pkill 进程名
killall 进程名
# 2、强制杀进程
kill -9 进程号
killall -9 进程名
问题:导致进程起不来.
web,crond没有数据的软件 kill -9 进程号
重的服务不能kill -9
5、进程前后台切换
sh tar.sh # 1、前台正在运行的进程
crtl+z # 2、挂起前台正在运行的进程
bg # 3、挂起的进程在后台运行
fg # 4、后台运行的进程切换至前台
sh tar.sh & # 5、程序直接放到后台运行
浙公网安备 33010602011771号