Linux基础知识及系统管理(六):Linux进程管理
一、进程的概念
1、进程和程序的区别
(1)、程序是静态概念,本身作为--种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。
(2)、程序和进程无。对应关系。 一个程序可以由多个进程共用;另一方面,一个进程在活动中有可顺序地执行若干个程序。
2、父进程与子进程
(1)、子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程。
(2)、在Linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。
(3)、父进程终止子进程自然终止。
3、前台进程和后台进程
(1)、前台进程:
在Shell提示处打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示符。这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行另一-个命令。
(2)、后台进程:
在Shell提示处打 入命令,若后随一个&,Shell创建的 子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与Shell同步运行,即在后台运行。后台进程必须是非交互式的。
4、进程状态
(1)、就绪: 进程已经分配到资源,但因为其它进程正占用CPU,所以暂时不能运行而等待分配CPU的状态。
(2)、等待: 因等待某种事件而暂时不能运行的状态。
(3)、运行: 进程分配到CPU,正在处理器上运行。
5、进程状态细化
(1)、用户态运行:在CPU上执行用户代码
(2)、核心态运行:在CPU上执行核心代码
(3)、在内存就绪:具备运行条件,只等调度程序为它分配CPU
(4)、在内存睡眠:因等待某一事件的发生, 而在内存中排队等待
(5)、在外存就绪:就绪进程被交换到外存上继续处于就绪状态
(6)、在外存睡眠:睡眼进程被交换到外存上继续等待
(7)、在内存暂停:因调用Istop程序而进入跟踪暂停状态,等待其父进程发送命令。
(8)、在外存暂停:处于跟踪暂停态的进程被交换到外存上
(9)、创建态:新进程正在被创建、但尚未完毕的中间状态
(10)、终止态:进程终止自己
二、进程管理命令
1、查看用户信息 w
-JCPU:以终端代号来区分,该终端所有相关的进程执行时,所消耗的CPU时间会显示在这里。
-PCPU:CPU执行程序耗费的时间
-WHAT:用户正在执行的操作
查看个别用户信息:w 用户名
w 显示信息的含义
-load average: 分别显示系统在过去1、5、15分钟内的平均负载程度。
-FROM:显示用户从何处登录系统,“:0”的显示代表该用户时从X Window下。打开文本模式窗口登录的
-IDLE:用户闲置的时间。这是一一个计时器,,一旦用户执行任何操作,该计时器便会被重置
2、查看系统中的进程ps
(1)、常用选项
-a:显示所有用户的进程
-u:显示用户名和启动时间
-x:显示没有控制终端的进程
-e:显示所有进程,包括没有控制终端的进程
-l:长格式显示
-w:宽行显示,可以使用多个w进行加宽显示
(2)、实例
# ps-uor-l查看隶属于自己进程详细信息
# ps -le or -aux查看所有用户执行的进程的详细信息
# ps -aux --sort pid可按进程执行的时间、PID、UID等对进程进行排序
# ps -uU 用户名 查看系统中指定用户执行的进程
# ps -aux | grep 用户名 查看系统中指定用户执行的进程
# ps -le | grep init 查看指定进程信息
# pstree 树状显示所有进程
3、ps常用输出信息的含义
-PID:进程号
-PPID:父进程的进程号
-TTY:进程启动的终端
-STAT:进程当前状态
S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止
-NI:进程优先级
-TIME:进程自从启动以来启用的CPU的总时间
-COMMAND/CMD:进程的命令名
-%CPU:占用CPU时间和总时间的百分比
-%MEM:占用内存与系统内存总量的百分比
4、kill-杀死进程
(1)、为什么要杀死进程
-该进程占用了过多的CPU时间
-该进程缩住了一个终端,使其他前台进程无法运行
-运行时间过长,但没有预期效果
-产生了过多到屏幕或磁盘文件的输出
-无法正常退出
(2)、常用选项
-关闭进程: kill进程号(PID)
- kill-9 进程号(强行关闭)
- kill-1 进程号(重启进程)
-关闭图形程序: xkill
-结束所有进程: killall
-查找服务进程号: pgrep 服务名称
-关闭进程: pkill 进程名称
实例:
# /etc/rc.d/init.d/httpd start
启动 httpd:[确定]
# pgrep httpd
5440
5442
5443
# pkill httpd
# pgrep httpd
5、优先级命令 nice renice
(1)、nice
-指定程序的运行优先级
-格式:nice -n command
-例如:nice --5 /etc/rc.d/init.d/httpd start
(2)、renice
-改变一个正在运行的进程的优先级
-格式:renice n PID
-例如:renice -5 777
*优先级取值范围为(-20,19)*
6、nohup
使进程在用户退出登陆后仍旧继续执行,nohup命令将执行后的数据信息和错误信息默认储存到文件nohup.out中
格式:nohup program &
nohup find / -nane init > /root/find.init.20190116 &
7、进程的挂起和恢复
(1)、进程的中止(挂起)和终止
挂起(Ctrl+Z)
终止(Ctrl+C)
(2)、进程的恢复
恢复到前台继续运行(fg)
恢复到后台继续运行(bg)
(3)、查看被挂起的进程(jobs )
8、top 进程状态显示和进程控制,每5秒钟自动刷新次(动态显示)常用选项:
-d:指定刷新的时间间隔
-c:显示整个命令行而不仅仅显示命令名
-u:查看指定用户的进程
-k:终止执行中的进程
-h or ?:: 获得帮助
-r:重新设置进程优先级
-s:改变刷新的时间间隔
-W:将当前设置写入~/.toprc文件中
三、计划任务
1、为什么要设置计划任务
2、at 安排作业在某一时刻执行一次
(1)、at命令格式及参数
at[-f 文件名] 时间
at -d or atrm 删除队列中的任务
at -l or atq 查看队列中的任务
(2)、at命令指定时间的方式
绝对及时方法
-midnight noon teatime
-hh:mm:[today]
-hh:mm tomorrow
-hh:mm 星期
-hh:mm MM/DD/YY
相对计时方法
-now + n minutes
-now + n hours
-now + n days
(3)、指定在今天下午17.30执行某命令(假设现在14.30,2011,1,11)
at 5:30pm
at 17:30
at 17:30 today
at now + 3 hours
at 17:30 11.1.11
at 17:30 1/11/11
(4)、at 配置文件 :限制哪些用户可以使用at命令
-/etc/at.allow
-/etc/at.deny
如果/etc/at.allow文件存在,那么只有列在此文件中的用户才可以使用at命令;若/etc/at.allow文件不存在,则检查/etc/at.deny文件是否存在。若/etc/at.deny存在, 则在此文件中列出的用户都不能使用at命令。如果两个文件都不存在,则只有超级用户可以使用at命令。如果两个文件都存在而且均为空,则所有用户都可以使用at命令。
2、batch 安排作业在系统负载不重时执行一次(负载在0.8以下)
使用方法同at
3、crontab 用于生成cron进程所需要的crontab文件(周期性计划任务)
(1)、crontab的命令格式
crontab {-l|-r|-e}
-l 显示当前的crontab
-r 删除当前的crontab
-e 使用编辑器编辑当前的crontab文件
(2)、创建计划任务 crontab -e
(把知道的具体时间添上,不知道的都添上*)
例如:分钟 小时 天 月 星期 命令/脚本
0 4 * * * (每天凌晨4点)
0 18 * * 2,5 (周二周五下午6点)
0 18 * 1-3 2,5 (一到三月周二周五下午6点)
30 17 * * 1-5 /usr/bin/wall < /etc/issue
45 17 * * 1-5 /sbin/shutdown -h now
例:某学校运营网站服务器,周一到周五12-14点每两分钟检测服务是否在启动,若不在启动,把它启动
crontab -e */2 12-14 * 3-6,9-12 1-5 命令
(3)、书写注意事项
-这些项都不能为空,必须填入
-如果用户不需要指定其中的几项,那么可以使用统配符*表示任何时间
-每个时间字段都可以指定多个值,它们之间用逗号间隔
-命令应该给出绝对路径
-用户必须具有运行所对应的命令或程序的权限
-注意启动crontab /etc/rc.d/init.d/crond start
-创建的计划任务文件在 /var/spool/cron目录下
(4)、crontab配置文件 /etc/crontab :限制哪些用户可以使用crontab命令
-/etc/cron.allow
-/etc/cron.deny
四、进程处理方式
standalone 独立运行
xinetd 进程托管
atd、crond 计划任务