您的位置:首页 > 运维架构 > Linux

[Linux] 七,进程管理

2013-02-10 20:06 232 查看
课程大纲 『

 进程的概念

 进程管理命令

 计划任务



进程和程序的区别

 1、程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,

    它是动态概念,有一定的生命期,是动态产生和消亡的。

 2、程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个

    进程在活动中有可顺序地执行若干个程序。

父进程与子进程

 1、子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程。

 2、在Linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的

    数据和堆栈段以及父进程的进程环境。

 3、父进程终止子进程自然终止。

前台进程和后台进程

 前台进程:

  在Shell提示处打入命令后,创建一个子进程,运行命

  令,Shell等待命令退出,然后返回到对用户给出提示

  符。这条命令与Shell异步运行,即在前台运行,用户在

  它完成之前不能执行另一个命令。

 后台进程:  【很好】

  在Shell提示处打入命令,若后随一个&,Shell创建的子

  进程运行此命令,但不等待命令退出,而直接返回到对

  用户给出提示。这条命令与Shell同步运行,即在后台运

  行。后台进程必须是非交互式的。

进程状态

 就绪: 进程已经分配到资源,但因为其它进程正占用

       CPU,所以暂时不能运行而等待分配CPU的状态。

 等待: 因等待某种事件而暂时不能运行的状态。

 运行: 进程分配到CPU,正在处理器上运行。

进程状态细化

 用户态运行 : 在CPU上执行用户代码

 核心态运行 : 在CPU上执行核心代码

 在内存就绪 : 具备运行条件,只等调度程序为它分配CPU

 在内存睡眠 : 因等待某一事件的发生,而在内存中排队等待

 在外存就绪 : 就绪进程被交换到外存上继续处于就绪状态

 在外存睡眠 : 睡眠进程被交换到外存上继续等待

 在内存暂停 : 因调用stop程序而进入跟踪暂停状态,等待其父进程发送命令。

 在外存暂停 : 处于跟踪暂停态的进程被交换到外存上

 创建态 : 新进程正在被创建、但尚未完毕的中间状态

 终止态 : 进程终止自己

查看用户信息 w

 w显示信息的含义

 JCPU : 以终端代号来区分,该终端所有相关的进程执行时,所消耗的CPU时间会显示在这里

 PCPU : CPU执行程序耗费的时间

 WHAT : 用户正在执行的操作查看个别用户信息:w 用户名

查看用户信息 w

w显示信息的含义

 load average: 分别显示系统在过去1、5、15分钟内的平均负载程度。

 FROM: 显示用户从何处登录系统,“:0”的显示代表该用户时从X Window下,打开文

       本模式窗口登录的

 IDLE: 用户闲置的时间。这是一个计时器,一旦用户执行任何操作,该计时器便会

       被重置

hp@ubuntu:~$ w

 22:02:45 up 22 min,  2 users,  load average: 0.27, 0.27, 0.28

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

hp       tty7                      21:40   22:33   1:16   0.34s gnome-session -

hp       pts/0    :0               22:02    0.00s  0.37s  0.01s w

:0 就是用 xwindow 登陆的。

查看系统中的进程 ps 常用选项

 a : 显示所有用户的进程

 u : 显示用户名和启动时间

 x : 显示没有控制终端的进程

 e : 显示所有进程,包括没有控制终端的进程

 l : 长格式显示

 w : 宽行显示,可以使用多个w进行加宽显示

ps常用输出信息的含义

 TIME:进程自从启动以来启用CPU的总时间

 COMMAND/CMD:进程的命令名

 USER:用户名

 %CPU:占用CPU时间和总时间的百分比

 %MEM:占用内存与系统内存总量的百分比

ps应用实例

 # ps 查看隶属于自己的进程

 # ps -u or -l 查看隶属于自己进程详细信息

 # ps -le or -aux 查看所有用户执行的进程的详细信息

 # ps -aux --sort pid 可按进程执行的时间、

    PID、UID等对进程进行排序

ps应用实例

 # ps -aux | grep sam

 # ps -uU sam 查看系统中指定用户执行的进程

 # ps -le | grep init 查看指定进程信息

 # pstree

kill – 杀死进程

 *1 为什么要杀死进程

 *2 该进程占用了过多的CPU时间

 *3 该进程缩住了一个终端,使其他前台进程无法运行

 *4 运行时间过长,但没有预期效果

 *5 产生了过多到屏幕或磁盘文件的输出

 *6 无法正常退出

关闭进程:kill 进程号

 *1 kill -9 进程号(强行关闭)  kill -s 9 进程号 [前简化]  

 *2 kill -1 进程号(重启进程)

 *3 关闭图形程序:xkill

 *4 结束所有进程:killall

 *5 查找服务进程号:pgrep 服务名称

 *6 关闭进程:pkill 进程名称

 启动程序 stop , 也可以关闭

 /etc/rc.d/init.d/httpd restart

--------------------------------

# cat/proc/cpuinfo

# pgrep httpd 检测但它所有进程的 pid

# pkill httpd 也可以关闭,很方便

nice和renice

 nice

  指定程序的运行优先级

  格式:nice -n command

  例如:nice -5 myprogram

 renice

  改变一个正在运行的进程的优先级

  格式:renice n pid

  例如:renice -5 777

 *优先级取值范围为(-20,19)*

nohup

 使进程在用户退出登陆后仍旧继续执行,nohup命令将执行后的数据信息和

 错误信息默认储存到文件nohup.out中

 格式: nohup program &

进程的挂起和恢复

 进程的中止(挂起)和终止

 挂起(Ctrl+Z)  [类似差不多暂停]

 终止(Ctrl+C)

 进程的恢复

 恢复到前台继续运行(fg)

 恢复到后台继续运行(bg)

 查看被挂起 /后台的进程(jobs)

top 

 作用:进程状态显示和进程控制,每5秒钟自动刷新一次(动态显示)

 常用选项:

  d : 指定刷新的时间间隔

  c : 显示整个命令行而不仅仅显示命令名

 top常用命令:

  u : 查看指定用户的进程

  k : 终止执行中的进程

  h or ?:获得帮助

  r : 重新设置进程优先级

  s : 改变刷新的时间间隔

  W : 将当前设置写入~/.toprc文件中

计划任务

 #1 为什么要设置计划任务

 #2 计划任务的命令 {

    *1 at 安排作业在某一时刻执行一次

    *2 batch 安排作业在系统负载不重时执行一次

    *3 cron 安排周期性运行的作业

 }

at命令的功能和格式

  功能:安排一个或多个命令在指定的时间运行一次

   at的命令格式及参数

     at [-f 文件名] 时间

     at -d or atrm  删除队列中的任务

     at -l or atq   查看队列中的任务

服务器一般 02:00 ~ 04:00 不那么繁忙!

进程处理方式

 standalone 独立运行

 xinetd 进程托管

 atd、crond 计划任务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: