|
1.大纲
[1] 进程的概念
[2] 进程管理命令
[3] 计划任务
2.进程和程序的区别
[1]程序是静态概念,本深作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命周期,是动态产生和消亡的
[2]程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个进程在活动中有可顺序地执行若干个程序
3.父进程与子进程
[1] 子进程是由一个进程所产生的进程,产生这个子进程的进程叫父进程
[2]在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。
[3]父进程终止子进程自然终止
4.前台进程和后台进程
[1] 前台进程:在shell提示处打入命令后,创建一个子进程,运行命令,shell等待命令退出,然后返回到对用户提示符。即在前台运行,用户在它完成之前不能执行另一个命令。
[2]后台进程: 在shell提示处打入命令,若后随一个&,shell创建的子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与shell同步运行,即在后台运行。后台进程必须是非交互式的。
5.进程状态
[1]就绪:进程已经分配到资源,但因为其它的进程正占用CPU,所以暂时不能运行而等待分配CPU的状态
[2]等待:因等待某种事件而暂时不能运行的状态
[3]运行:进程分配到CPU,正在处理器上运行
6.进程状态细化
[1] 用户态运行:在CPU上执行用户代码
[2] 核心态运行:在CPU上执行核心代码
[3] 在内存就绪:具备运行条件,只等调度程序为它分配cpu
[4] 在外存就绪:就绪进程被交换到外存上继续处于就绪状态
[5] 在外存睡眠:因调用stop程序而进入跟踪暂停状态,等待其父进程发送命令。
[6]在外存暂停:处于跟踪暂停的进程被交换到外存上
[7]创建态: 新进程正在被创建、但尚未完毕的中间状态
[8]终止态:进程终止自己
7.进程管理的命令
[1] w 显示信息的含义
1> JCPU:以终端代号来区分,该终端所有祥光的进程执行时,所消耗的CPU时间会显示在这里
2> PCPU:CPU执行程序耗费的时间
3>WHAT 用户正在执行的操作
[2] w username 查看某个用户
[3] w 相关的信息
1> load average:分别显示系统在过去1、5、15分钟内的平均负载程度
2>FROM: 显示用户从何处登录系统,”:0“的显示代表该用户时从 X Window下,打开文本模式窗口登录的
3>IDLE:用户闲置的时间。这是一个计时器,一旦用户执行任何操作,该计时器,一旦用户执行任何操作,该计时器便会被重置
[4] ps
1> a: 显示所有用户的进程
2> u: 显示用户名和启动时间
3> x: 显示没有控制终端的进程
4> e: 显示所有进程,包括没有控制终端的进程
5> l:长格式显示
6> w: 宽行显示,可以使用多个w进行加宽显示
[5] ps 查看隶属于自己的进程
[6] ps -u or -l 查看隶属于自己进程详细信息
[7] ps -le or -aux 查看所有用户执行的进程的详细信息
[8] ps -aux -sort pid 可按进程执行的时间、PID、UID等对进程进行排序
[9] 选项含义
1> PID: 进程号
2> PPID: 父进程的进程号
3> TTY: 进程启动的终端
4> STAT:进程当前的状态 S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止
5>NI:进程优先级
6>TIME:进程自从启动以来启用的CPU的总时间
7>COMMAND/CMD:进程的命令名
8>USER:用户名
9>%CPU:占用CPU时间和总时间的百分比
10>%MEM:占用内存与系统内存总量的百分比
[10] ps -le | grep httpd 管道
[11] ps -aux | grep sam
[12] ps -uU sam 查看系统中执行的用户执行的进程
[13] ps -le | grep init 查看指定进程信息
[14] kill 杀死进程
1> 该进程占用了过多的CPU时间
2> 该进程锁住了一个终端,是其它前台进程无法运行
3> 运行时间过长,但没有预期效果
4> 产生了过多到屏幕或磁盘文件的输出
5> 无法正常的退出
[15]kill -9 pid 强行关闭
[16]kill -1 pid 重启进程
[17]关闭图形程序:xkill
[18]结束所有进程:killall
[19]查找服务进程号: pgrep 服务名称
[20]关闭进程:pkill进程名称
[21]ls /proc 虚拟的文件目录
[22]cat /proc/cpuinfo
[23]pgrep httpd 查看服务进程的信息
[24]kill -1 `preg httpd` 文字替换符关闭
[25]nice 指定程序的运行优先级 nice -n command nice -5 program
[26]renice 改变一个正在运行的进程的优先级 renice n pid 例如:renice -5 777
[27]优先级 -20 到 19
[28]nohup 使进程在用户退出登录后仍旧继续运行,nohup命令将执行后的数据信息和错误信息默认储存到文件nohup.out中 格式: nohup program &
[29]nohup find / -name init* > /root/find.init.2011.11.28 &
[30]进程的终止(挂起)ctrl+z和终止ctrl+c
[31]进程的恢复 恢复到前台继续运行 (fg)、后台(bg)
[32]查看被挂起的进程 (jobs)
[33]find / -name adb > /test/find.adb & 后台运行
[34]jobs
[35] fg 1 / bg 1
[36] top 进程管理命令
1> d:指定刷新的时间间隔
2> c:显示整个命令行而不仅仅显示命令名
3> u:查看指定用户的进程
4> k:终止这个进程 pid
5> h or ? 获取帮助
6> r:设置进程的优先级
7> s:改变刷新的时间间隔
8> W:将当前设置写入~/.toprc文件中
[37] 计划任务的命令
1> at 安排作业在某一时刻执行一次
2> batch 安排作业在系统负载不重时执行一次
3> cron 安排周期性运行的作业
[38]at 安排一个或多个命令在指定的时间运行一次
1> at [-f 文件名] 时间
2> at -d or atrm 删除队列中的任务
3> at -l or atq 查看队列中的任务
[39]时间计时方法 a 绝对计时方法 b 相对计时方法
[40] 绝对计时方法 (推荐)
1> midnight noon teatime
2>hh:mm [today]
3>hh:mm tomorrow
4>hh:mm 星期
5>hh:mm MM/DD/YY
[41]相对计时方法
1> now + n minutes
2> now + n hours
3> now + n days
[42] at
1> at 5:30pm
2> at 17:30
3> at 17:30 today
4> at now + 3 hours
5> at now + 180 minutes
6> at 17:30 11.1.11
7> at 17:30 1/11/11
8> date
9> finger root 查看计划任务
10>启动at进程 /etc/rc.d/init.d/atd start
11>at now +5 minutes -> /usr/bin/wall < /etc/motd -> ctrl+d
12>at -f at.script 9:00 2/2/11 or at < at.script 9:00 2/2/11
13>at -l 查看计划任务
14>at存放目录 /var/spool/at/
15> at -l -> at -d number 删除计划任务
[43]作用:限制哪些用户可以使用at命令
1> /etc/at.allow
2> /etc/at.deny
3> 若at.allow存在,只有在这个文件内用户可以使用
4> 若at.deny存在,只有不在这个文件的用户可以使用
5> 若at.allow和at.deny都存在且都为空,则所有用户都可以使用
6> 若两个都不存在,只有管理员root可以使用
[44]作用:安排一个或多个命令在系统负载较轻时运行一次(一般情况下负载较轻指平均负载降到0.8一下),使用方法和at相同
[45]crontab 用于生成cron进程所需要的crobtab文件
1> -l 显示当前的crontab
2> -r 删除当前的crontab
3> -e 使用编辑器编辑当前的crontab文件
4> crontab -e 分钟 小时 天 月 星期 命令/脚本
5> 法则:把知道的具体时间都添加上,不知道得都添加上*
6> 0(分钟) 4(小时) *(天) *(月) *(星期) 每天4点
7> 0(分钟) 18(小时) *(天) *(月) 2,5(星期) 每个星期2和星期5
8> 0(分钟) 18(小时) *(天) 1-3(月) 2,5(星期) 1-3月的每个星期2和星期5
9> 30(分钟) 17(小时) *(天) *(月) 2,5(星期) 每个星期2和星期5
10> */2(每隔两分钟) 12-14(小时) * 3-6,9-12(月) 2,5(星期) /bin/cp -r /etc/backup/etc.20110111 2> /backup/etc.bak.err > /dev/null(黑洞)
[46] 书写注意事项
1> 这些项都不能为空,必须填入
2> 如果用户不需要指定其中的几项,那么可以使用通配符*表示任何时间
3>每个时间字段都可以指定多个值,他们之间用逗号间隔
4>命令应该给出绝对路径
5>用户必须具有运行所对应的命令或程序的权限
[47] crontab 其他选项
1> ls /var/spool/cron 查看
2> crontab -l 查看
3> crontab 编辑
4> crontab -r 删除
[48] /etc/crontab 配置文件
[49] 进程处理方式
1> standalone 独立运行 (一直运行)
2> xinetd 进程托管 (/etc/xinet.d)
3> atd、crond计划任务
[50] netstat -an | grep "LISTEN" | more 查看网络监听端口
|
|
|