Linux进程和计划任务管理
程序和进程的关系
程序:保存在硬盘、光盘等介质中的可执行代码和数据,是静态保存的代码。
进程:在CPU及内存中运行的程序代码,是动态执行的代码。
父、子进程:每个进程可以创建一个或多个进程。每个进程在不同的环境下,可能产生不同的进程,所以存在父、子进程的说法。
查看进程
ps(查看进程信息)
查看静态的进程统计信息
查询出的信息数据包含以下内容:
-
VSZ:虚拟内存
-
RSS:物理内存
-
STAT:S-休眠 R-运行 Z-僵死 <-高优先级 N-低优先级 s-父进程 +-前台进程 l-多线程 T停止
-
TIME:进程占用cpu的时间
-
VIRT:占用swap内存大小
-
PR:优先级
-
RES:占用物理内存大小
-
SHR:共享内存大小,两个进程间通信时所需
-
START :开启时间
常用选项:
-
a:所有与进程有关的进程
-
u:以用户为主的格式显示进程信息
-
x:所有与终端无关的进程
格式:
-
ps -elf:将以长格式显示系统中所有进程信息,包含更丰富的内容(其中PPID列表示进程的父进程的PID号)
-
ps aux(常用):将显示系统中所有的进程信息
PID:该进程在系统中的数字ID号,在当前系统中是唯一的; %CPU:CPU占用百分比; %MEM:内存占用百分比
-
查找某个进程常用命令:
#ps aux | grep “bash”
top(动态查看进程信息)(较少使用)
查看动态的进程排名信息
执行top命令进入动态检测后的命令符号如下:
-
M:根据内存使用进行排序
-
P:根据CPU使用排序
-
T:根据累计运行时间进行排序
-
l:是否显示启动时间、平均负载等信息
-
t:是否显示进程和CPU状态相关信息
-
m:是否显示内存相关信息
-
c:是否显示完整命令行信息
-
k:终止某个进程
-
q:退出top
-
h:可以获得top程序的在线帮助信息
-
使用空格键可以强制更新进程状态显示
注意:#top -d 1 //一秒钟刷新一次
pgrep(查看进程信息)(特定信息)
根据特定条件查询进程PID信息
使用案例:
-
#pgrep -lu root //查看root用户开启的进程与PID(-l显示进程名)
-
#pgrep -l -U zhangsan -t tty1 //指定张三用户在tty1终端下运行的进程(-U指定特定用户,-t指定终端)
pstree(查看进程信息)(层次关系)
以树形结构列出进程信息
命令选项:
-
-a:显示完整信息
-
-u:列出对应用户名
-
-p:列出对应PID号
使用案例:
-
#pstree -aup //查看进程树详细信息
-
#pstree -aup root //查看root用户打开的进程
├─sshd,1008 -D
│ └─sshd,1266
│ └─bash,1268
│ └─pstree,1299 -aup
第一个sshd,1008 -D,为centos本机开启的ssh服务的进程号。
第二个sshd,1266子进程为CRT连接所使用的进程号。
第三个bash,1268,是CRT连接的子进程,代表使用bash命令行的进程号。
第四个pstree,1299 -aup,是bash的子进程,是刚刚执行的pstree命令所产生的程序进程。
补充知识:yum provides pstree命令,可以查看pstree命令属于哪一个软件包,若没有安装的话,可以使用yum install命令安装。
控制进程
进程的启动方式
四种:
-
手工启动
-
前台启动:用户输入命令,直接执行程序
-
后台启动:在命令行尾加入“&”符号
(cp /dev/cdrom aa.iso &a