全部博文(36)
分类:
2012-08-04 21:22:17
原文地址:linux 进程管理 作者:zhangjiefly5
1.进程的概念
进程和程序的区别:
1.程序是静态概念,本身做为一种软件资源长期保存。
进程是动态概念,程序的执行过程,有一定的生命周期,是动态产生和消亡的。
2.进程和程序不是一一对应的关系。一个程序可以有多个进程所共用,一个进程活动中可以顺序执行多个程序。
父进程和子进程的关系:
子进程是有一个叫做父进程的进程产生的。
linux中,系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。
父进程结束后子进程便自然终止。(僵尸进程和孤儿进程区别:?)
后台进程和前台进程:
shell的提示符#或$后面输入command后创建一个子进程,执行该命令。shell等待命令退出(是不是该子进程结束了???),然后返回给用户一个命令提示符。command与shell异步运行。用户在command1运行期间不可以同时运行command2。 :command1即在前台运行。
用户在shell提示符后直接输入command & ,系统不等待command退出而立即返回提示符,command与shell同时运行。后台运行的命令必须是非交互的(如 ping)。 :command 即在后台运行。
2.进程管理命令
1.查看用户信息 w 及 w user:
2.查看系统进程:ps
a:显示所有用户的进程
u:显示用户名和启动时间
x:显示没用终端控制的进程(进程还有没有终端控制的吗???)
e:显示所有的进程,包括没有终端控制的。
l:长格式显示
w:宽行显示,可以使用多个w,加宽显示。
3.ps输出信息含义:
PID:进程号
PPID:父进程号
TTY:进程启动的终端
NI:进程当前优先级
STAT:进程当前状态
S:休眠
Z:僵尸
T:停止
R:运行
D:不可中断的休眠
TIME:只从启动以来所占用CPU的总时间;
CMD:进程的命令名字;
%CPU:占用CPU时间和总时间的比
%MEN:占用内存和系统总内存的比
4.ps应用实例:
ps 查看隶属自己的进程
ps -u or -l 查看隶属自己进程的详细信息
ps -le or -aux 查看所有用户执行进程的详细信息
ps -aux --sort pid 可按进程执行的时间、PID、PPID...对进程排序显示
eg: ps -aux | grep samlee
ps -le | grep init
5.kill 杀死进程 : kill 进程号
kill -9 PID 强行关闭进程
kill -1 PID 从启进程
xkill 关闭图形进程
killall 杀死所有进程
pgrep 服务及名称 : 查找服务器进程
pkill 进程名 :关闭进程(不用知道进程PID)
6.nice 和 renice
nice 指定进程的优先级(刚开始的时候)
格式:nice -n command
renice 修改运行中的进程的优先级
格式:renice n PID
优先级的n 值的取值范围是-20-19
7.nohup
格式:nohup program &
进程所属的用户退出后,进程任然继续执行。将执行的数据信息和错误信息默默的保存在nohup.out文件中。
8.进程的终止和挂起
进程终止: ctrl + c
进程挂起: ctrl + z
前台进程转后台: bg
后台进程转前台: fg
查看被挂起的进程: jobs
9.top 动态查看进程
u: 查看指定用户进程
k:终止执行中的进程
h or ? : 获得帮助
r: 重新设置进程优先级
s: 改变刷新的时间间隔
W:将当前设置写入:~/toprc文件中
3.计划任务
at:安排作业在某一时刻执行
cron: 安排作业周期性的执行
bath :安排作业在系统负载不重时执行。
1。at命令的功能和格式
功能:安排一个或多个命令在指定的时间运行一次。
格式及参数:
at [-f filename] time
at -d or atrm 删除队列中的任务
at -l or atq 查看队列中的任务
at的绝对计时法:
midnight noon teatime
hh:mm [today]
hh:mm tomorrow
hh:mm 星期
hh:mm MM/DD/YY
at的相对计时法:
now + n minutes
now + n hours
now + n days
at指定时间的方式:
at 5:30pm
at 17:30
at 17:30 today
at now + 3 hours
at now + 180 minutes
at 17:30 1/8/12
at 17:30 8.1.12
at使用范例:
1.交互方式
at 9:00
2.使用命令文件方式
1.写一个at.script
2.使用at命令
at -f at.script 9:00 1/8/12
or
at < at.script 9:00 1/8/12
at的配置文件
etc/at.deny
etc/at.allow
2.batch 命令
安排一个或多个命令在系统任务较轻时使用(一般系统的负荷在0.8以下)
使用方法雷同at命令
3.crontab命令
1. 作用:用于生成cron进程所需的crontab文件
2. 格式:
crontab {-l|-r|e}
-l:显示当前的crontab文件
-r:删除当前的crontab文件
-e:当前的编辑crontab文件
minute hour day-of-month month-of-year day-of-week commands
minute 一小时中那一部分时间【0-59】
hour 一天中那个小时 【1-23】
day -of-mounth 一月中那一天 【1-31】
mounth-of-year 一年中那一个月 【1-12】
day-of-week 一周中那一天 【1-7】
command 执行命令
书写注意事项:
1.每一个选项不可空,都必须填,若不知道值使用通配符*表示任何时间。
2.每一个时间段都可以指定多个值,不连续的时间用逗号,连续的时间段使用-。
3.命令最好给出绝对路径。
4.用户必须具有运行所对应命令或程序的权限。
crontab实例:
crontab配置文件
1.etc/cron.allow
2.etc/cron.deny
4.进程处理方式
standalone 独立运行
atd crond 计划任务
xinetd 进程托管