第六章管理进程和计划任务
 
1. Linux的引导流程
2.1 引导流程总览
2.2 系统初始化进程和文件
A. INIT进程
Ø 由Linux内核加载运行 /sbin/init 程序
Ø 是系统中第一个进程,PID(进程标记)号永远为1
Ø 配置文件:/etc/inittab
   B.inittab配置文件
id,也称标记字段,由1~4个字符组成,用以区别于其他行的配置,所以id标记字段必须是唯一的
runlevels,运行级别字段,用于指定该记录在哪些运行级别中运行,取值数字0~6,后面会对其进行详细解释
action ,动作类型字段,动作类型字段描述了该行配置所对应的操作类别,一般为固定值,较常用的类型如下:
       initdefault:设置初始化系统后默认进入的运行级别
       sysinit:设置系统初始化的操作脚本
       wait:init进程将等待该行配置所对应的脚本操作完成后,再继续执行其他操作
       ctrlaltdel:设置当用户按下Ctrl+Alt+Delete组合键后的操作
      powerfail:设置当系统收到断电信号(使用不间断电源)时采取何种动作
      powerokwait:设置当系统收到恢复供电信号时采取何种动作
      respawn:一旦该行配置所对应的进程被终止,则重新启动该进程
process,程序或脚本字段,此字段用于指定该行配置所对应的实际操作,可以是具体的命令、脚本程序等
C 其他的启动文件
Ø /etc/rc.d/rc.sysinit
由init进程调用执行
完成设置网络、主机名、加载文件系统等初始化工作
Ø /etc/rc.d/rc脚本文件
由init进程调用执行
根据指定的运行级别, 加载或终止相应的系统服务
Ø /etc/rc.local脚本文件
由rc脚本调用执行
保存用户定义的需开机后自动执行的命令
 
2.3 运行级别控制
Ø 运行级别
指运行Linux系统的不同模式
每种模式对应不同的服务程序组合
Ø 默认的7种运行级别
0:关机状态
1:单用户模式
2:字符界面的多用户模式(不支持网络)
3:字符界面的完整多用户模式
4:未分配使用
5:图形界面的多用户模式
6:重新启动
Ø 调整默认运行级别
Ø 修改 /etc/inittab 文件中的 initdefault 配置行
           id:3:initdefault:
Ø 查看运行级别
使用runlevel命令,分别显示:
 切换前的运行级别、当前运行级别
Ø 临时切换运行级别
使用init命令结合 0-6 的运行级别参数
Ø 系统服务的启动控制
chkconfig查看系统服务的启动状态
格式:chkconfig --list
              chkconfig --list 服务名称
服务脚本位置:/etc/init.d à /etc/rc.d/init.d
设置系统服务的启动状态
格式:chkconfig --level 级别列表 服务名 on|off
ntsysv系统服务管理工具
格式:ntsysv
              ntsysv --level 级别列表
2.         进程管理
3.1   查看进程
1.       ps命令
用途:查看静态的进程统计信息
格式:ps aux
              ps -elf
2.       top命令
用途:查看动态的进程排名信息
按P键根据CPU占用情况对进程列表进行排序
按M键根据内存占用情况进行排序
按N键根据启动时间进行排序
按h键可以获得top程序的在线帮助信息
按q键可以正常退出top程序
使用空格键可以强制更新进程状态显示
3. pgrep命令
用途:根据特定条件查询进程PID信息
pgrep "init" ; pgrep -l "log" ; pgrep -l -U teacher -t tty1
4. pstree命令
用途:以树型结构显示各进程间的关系
3.2   控制进程
1.启动进程
   手工启动
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&”符号
调度启动
使用at命令,设置在某个特定的时间,执行一次任务
使用crontab命令,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务
      2.改变进程的运行方式
Ctrl+Z 组合键
将当前进程挂起,即调入后台并停止执行
jobs命令
查看处于后台的任务列表
fg命令
将处于后台的进程恢复到前台运行,需指定任务序号
      3.终止进程执行
 Ctrl+C组合键
中断正在执行的命令
kill、killall命令
kill用于终止指定PID号的进程
killall用于终止指定名称的所有进程
-9 选项用于强制终止
 pkill -9 -t pts/1
3.         计划任务管理
4.1 at一次性任务设置
在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务
服务脚本名称:/etc/init.d/atd
设置格式:at [HH:MM] [yyyy-mm-dd]
注意:使用at命令设置的任务只在指定时间点执行一次,若只指定时间则表示当天的该时间,若只指定日期则表示该日期的当前时间;可以在at交互环境中输入多条命令,最后按Ctrl+D组合键提交;对应的系统服务atd必须已经运行
 4.2 crontab周期性任务设置
按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
注意:全局配置和系统默认配置中的内容一般不需要用户去修改,用户只需设置/var/spool/cron/目录下与本帐号同名的文件即可,接下来介绍如何设置用户自己的计划任务
管理cron计划任务
编辑计划任务:crontab -e [-u 用户名]
查看计划任务:crontab -l [-u 用户名]
删除计划任务:crontab -r [-u 用户名]
      Crontab任务的配置格式
注意:时间数值的特殊表示方法
*        表示该范围内的任意时间
,    表示间隔的多个不连续时间点
-         表示一个连续的时间范围
/         指定间隔的时间频率
示例1
[root@localhost ~]# crontab -e
50 7 * * * /sbin/service sshd start
50 22 * * * /sbin/service sshd stop
0 * */5 * * /bin/rm -rf /var/ftp/pub/*
30 7 * * 6 /sbin/service httpd restart
30 17 * * 1,3,5 /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd