15 进程管理
15.1 进程的概念
进程与程序的区别
1、程序是静态概念,本身作为一种软件资源长期保存
而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。
2、进程与程序无一一对应关系。
一个程序可以由对各进程公用;一个进程在活动中有可顺序地执行若干个程序
父进程与子进程
1、子进程是由一个进程所产生的进程,产生这个子进程的进程成为父进程
2、字啊linux中使用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境
3、父进程终止,子进程自然终止。
进程用PID (process ID)标识
父进程PPID(parent PID)
进程的状态
15.2 进程管理命令
查看用户信息 w
w显示信息的含义
load average :分别显示系统在过去1、5、15分钟内的平均负荷程度
FROM :显示用户从何处登录系统,“:0”代表该用户从X Window下,打开文件模式窗口登录
IDLE :用户闲置时间。这是一个计时器一旦用户执行任何操作该计时器便会被重置
JCPU :以终端代号来区分,该终端所有相关的进程执行时,所消耗的CPU时间会显示在这里
PCPU:CPU执行成语耗费的时间
WHAT:用户执行的操作
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 - Thu15 ?xdm? 54.89s 0.20s /usr/bin/gnome-session
root pts/1 :0.0 Thu15 28.00s 0.03s 0.03s bash
root pts/2 172.19.210.213 09:01 0.00s 0.07s 0.05s w
查看个别用户信息:w 用户名
查看系统中的进程 ps
常用选项:
a 显示所有用户的进程
u 显示用户名和启动时间
x 显示没有控制终端的进程
e 显示所有进程,包括没有控制终端的进程
l 长格式显示
w 宽行显示,可以使用多个w进行价款显示
进程查询ps
ps显示信息含义:
PID :进程号
PPID :父进程号
TTY :进程显示终端
STAT:进程当前状态 (S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止)
NI :进程优先级
TIME:进程自从启动以来启用CPU的总时间
COMMAND/CMD:进程的命令名
USER:用户名
%CPU:占用CPU时间和总时间的百分比
%MEM:占用内存与系统内存总量的百分比
举例:
# ps -le --sort pid 可以按pid顺序显示进程信息
# ps -uU 用户名 查看用户的执行进程信息
# ps -le | grep 进程名 查看指定进程的信息
# pstree 查看进程树
[root@localhost ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 8167 8165 0 75 0 - 1134 wait pts/2 00:00:00 bash
4 R 0 8221 8167 0 77 0 - 1054 - pts/2 00:00:00 ps
删除进程kill
kill 进程号
kill -9 进程号 (强行关闭进程)
kill -1 进程号 (重启进程)
xkill 关闭图形程序
killall 结束所有进程
pgrep 服务器名称 查看服务进程号
pkill 服务名称 关闭服务
优先级命令: nice、renice
nice
指定程序的运行优先级
格式: nice -n command
例如:nice --5 myprogram
renice
改变一个正在运行的进程优先级
格式:renice n pid
例如:renice -5 777
优先级的取值范围:(-20,19)
nohup 可以实现单用户退出后,程序将继续执行。
执行后的数据信息和错误信息默认存储在 nohup.out 中,也可以通过输出重定向输出到指定文件中
格式: nohup program
进程的挂起和恢复
进程的中止(挂起)和终止
挂起:ctrl+Z
终止:ctrl+C
进程的恢复
查看被挂起的进程: jobs
在执行命令后添加 “
&” 则该命令会直接在后台执行
top 进程状态和进程控制,没5秒自动刷新一次(动态显示)
常用选项:
d:指定刷新的时间间隔
c:显示整个命令行而不仅仅显示命令名
u:查看指定用户的进程
k:终止进程
h/?:获得帮助信息
r:重新设置进程的优先级
q:退出
15.3 计划任务
计划任务的命令:
at : 安排作业在某时刻执行一次
at 【-f 文件名】
时间 # at -f
at.script
9:00 13/4/2013
时间表示方法:
绝对计时法
midnight noon teatime
hh:mm [today] #at 17:30
hh:mm MM/DD/YY
相对计时法
now + n minuties # at now +180 minuties
now + n hours
now + n days
at -d / atrm 删除列队中的任务
at -l / atq 查看队列找哦你的任务
at 的配置文件
作用:限制哪些用户可以使用at命令
/etc/at.allow
/etc/at.deny
如果/etc/at.allow文件存在,那么只有列在此文件中的用户才可以使用at命令;若/etc/at.allow文件不存在,则检查/etc/at.deny文件是否存在。若/etc/at.deny存在,则在此文件中列出的用户不能使用at命令。如果两个文件都不存在,只有超级用户可以使用at命令,如果两个文件都存在,且均为空,则所有用户都可以使用at命令。
batch:安排作业在系统负载不重时执行(一般轻负载<0.8),使用方法同at
cron:安排周期性运行的作业
crontab:用于生成cron进程所需要的crontab文件
命令格式: crontab {-l | -r | -e}
-l 显示当前的crontab
-r 删除当前的crontab
-e使用编辑器编辑当前的crontab文件 (crontab文件在/var/spool/cron)
crontab命令的时间书写格式
(把知道的具体的时间添上,不知道的都添上*)
分钟 小时 天 月 星期 命令/脚本
0 18 * * 2,5 (绝对路径的命令) % 每个星期二和星期五的下午6点执行。。。
0 18 * 1-3 0,2,5 % 每年的一到三月的星期日、星期二和星期五的下午6点执行。。。
*/30 * * * * % 每隔30分钟执行。。。
standalone 独立处理
xinetd 进程托管
atd、crond 计划任务