目录
进程管理
程序与进程:
程序是静态的(文件),进程是动态的(运行的程序)。
进程和线程:
一个程序至少有一个进程,一个进程至少有一个线程.
进程之间内存是独立
线程之前内存共享 ,高并发好一些 。 安全性差一些。
pstree
作用: 查看进程树
用法: pstree [-p]
显示进程号 -p1
pstree -p | more # | more 是将结果分页显示,参考 more 命令
tree
作用: 显示目录树形结构
用法: tree 目录名
1
2
3
4
5
6
7
8
9╰─$ tree /home/sam/back | more
/home/sam/back
├── 1_soft
│ ├── QIpmsg_32_121019.tar.gz
│ ├── vmware11
│ │ ├── key
│ │ └── VMware-Workstation-Full-11.0.0-2305329.x86_64.bundle
│ └── xp.iso
└── text
ps
- 作用: 列出目前所有的正在内存当中的进程
- 用法: ps -aux # BSD的格式来显示进程
ps -ef # 是用标准的格式显示进程
1 | $ ps -aux |
名称 | 含义 |
---|---|
USER | 运行此进程的用户名 |
PID | 该 process 的号码。 |
%CPU | 该 process 使用掉的 CPU资源百分比 |
%MEM | 该 process 所占用的物理内存百分比 |
VSZ | 该 process 使用掉的虚拟内存量 (Kbytes) |
RSS | 该 process 占用的固定的内存量 (Kbytes) |
TTY | 该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0等等的,则表示为由网络连接进主机的程序。 |
STAT | 该程序目前的状态,Linux进程有5种基本状态: R :(正在运行或在运行队列中等待);S :该程序目前正在睡眠当中 ,但可被某些讯号 (signal) 唤醒。T :该程序目前暂停了 Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态 D :不可中断状态. < : 高优先级的 N : 低优先级的 s : 包含子进程 l : 多线程 + : 前台程序 |
START | 该 process 被触发启动的时间 |
TIME | 该 process 实际使用 CPU运作的时间 |
COMMAND | 该程序的实际指令 |
注:
- 正常先关闭子进程,再关闭父进程;一旦父进程先关闭而子进程没关闭,则子进程变成 zombie (疆尸) 状态
ctrl-c
是发送 SIGINT 信号,终止一个进程,ctrl-z
是发送 SIGSTOP信号,挂起一个进程
free
- 作用 :查看系统内存量
- 用法 : free ; free [-m] #单位为M
buffers
: #缓存从磁盘读出的内容cached
: #缓存需要写入磁盘的内容1
2
3
4
5
6
7
8
9
10
11
12╭─sam@sam ~
╰─$ free
total used free shared buffers cached
Mem: 8080868 5240964 2839904 375964 1144 2930824
-/+ buffers/cache: 2308996 5771872
Swap: 4193276 0 4193276
╭─sam@sam ~
╰─$ free -m
total used free shared buffers cached
Mem: 7891 5109 2782 367 1 2862
-/+ buffers/cache: 2245 5645
Swap: 4094 0 4094
top
- 作用: 动态查看进程,统计信息区前五行是系统整体的统计信息。
- 用法: top ; top [-p] 进程号
默认3s刷新一次空格
:立即刷新。q
:退出M
:按内存排序P
: 按CPU排序<>
: 翻页
1 | ╭─sam@sam ~ |
说明:
- 前五行,系统整体的统计信息
行数 | 内容 | 含义 |
---|---|---|
第一行 | top - 15:44:29 up 6:17, 5 users, load average: 0.28, 0.26, 0.31 | 第一行是任务队列信息 15:44:29 up 6:17 : 当前时间 系统运行时间,格式为时:分 5 users, : 当前登录用户数 load average: 0.28, 0.26, 0.31 : 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 |
第二行 | Tasks: 271 total, 1 running, 270 sleeping, 0 stopped, 0 zombie | 第二行为进程信息 271 total : 进程总数 1 running :正在运行的进程数 270 sleeping : 睡眠的进程数 0 stopped : 停止的进程数 0 zombie : 僵尸进程数 |
第三行 | %Cpu(s): 1.0 us, 0.9 sy, 0.0 ni, 98.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st | 第三行为CPU的信息 1.0% us : 系统用户进程使用CPU百分比。 不包括调高优先级的进程。 CPU%是由每个核的CPU占用律之和算出来的。如果你是4核CPU,核1,CPU使用率为100%,核2,CPU使用率为100%。 则会出会CPU 高于100%的现象,最终为200% 0.9% sy : 内核中的进程占用CPU百分比 0.0% ni : 用户进程空间内改变过优先级的进程占用CPU百分比 98.1% id : 空闲CPU百分比 |
第四行 | KiB Mem: 8080868 total, 5044804 used, 3036064 free, 1144 buffers | 物理内存信息(KB) 8080868 total : 物理内存总量 5044804 used : 使用的物理内存总量 3036064 free : 空闲内存总量 2920332 buff/cache : 用作内核缓存的内存量。 |
第五行 | KiB Swap: 4193276 total, 0 used, 4193276 free. 2920332 cached Mem | 交换区信息(KB) 4193276 total : 交换区总量 0k used : 使用的交换区总量 4193276 free : 空闲交换区总量 2920332 avail Mem : 总的可利用内存是多少 |
- 具体进程信息
列名 | 含义 |
---|---|
PID | 进程id |
USER | 进程所有者的用户名 |
NI | 进程优先级。 nice值。负值表示高优先级,正值表示低优先级 |
RES | 实际使用内存大小。 |
S | 进程状态。 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 命令名/命令行 |
kill
- 作用 : 控制(关闭)进程
- 用法 : kill 给进程发送信号(停止进程) ; kill -9 pid; killall 服务名; pkill 服务名
常用信号:1
HUP 重新加载配置文件。类似重启。2
INT 和ctrl+c一样 一般用于通知前台进程组终止进程9
KILL 强行中断19
STOP 和ctrl+z一样
nice renice
- 作用 : nice 控制以什么优先级运行进程 。默认优先级是0;nice值 -20 ~ 19 越小优先级越高 普通用户0-19
renice #修改正在运行的进程的优先级 - 用法 : nice -n 优先级数字 进程号
前后台进程切换
jobs
列出所有后台进程
创建后台指令
- nohup
- &
1
nohup <command> [argument…] &
fg
用法: fg 后期进程序列号
1 | [root@localhost ~]# fg 1 |
screen
虽然nohup很容易使用,但还是比较“简陋”的,对于简单的命令能够应付过来,对于复杂的需要人机交互的任务就麻烦了。screen
可以恢复当时状态。
安装
rpm或yum方式
1 | [root@localhost ~]# yum -y install screen |
使用
启动screen
1
[root@localhost ~]# screen
执行业务操作
例如:1
[root@localhost ~]# vim 1.sh
保存状态
按ctrl+a+d,出现[detached]恢复
查看 -ls ; 恢复 -r id号1
2
3
4
5
6
7
8
9╭─sam@sam ~
╰─$ screen -ls
There is a screen on:
13033.pts-3.sam (Detached)
1 Socket in /run/uscreens/S-sam.
╭─sam@sam ~
╰─$ screen -r 13033