八、进程管理

1、进程的概念

    1. 程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,他是动态概念,有一定的生命周期,是动态产生和消亡的。
    2. 程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个进程在活动中有可顺序地执行若干个程序。

2、父进程与子进程

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

2、在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。

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

3、前台进程

在shell提示处打开命令后,创建一个子进程,运行命令,shell等待命令退出,然后返回到对用户给出提示符。这条命令与shell异步运行,即在前台运行,用户在它完成之前不能执行另一个命令。

4、后台进程

在shell提示处打入命令,若后随一个&,shell创建的子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与shell同步运行,即在后台运行。后台进程必须是非交互式的。

5、进程状态

就绪:进程已经分配到资源,但因为其他进程正占用CPU,所以暂时不能运行而等待分配CPU的状态。

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

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

8

6、进程管理命令

1、w命令

9

  • load average:分别显示系统在过去1、5、15分钟内的平均负载程度。0.8以下说明负载较轻
  • from:显示用户从何处登陆系统,“:0“的显示代表该用户在X Window下,打开文本模式窗口登陆的。
  • IDLE:用户闲置的时间。这是一个计时器,一旦用户执行任何操作,该计时器便会被重置。
  • JCPU:以终端代号来区分,该终端所有相关的进程执行时,所消耗的CPU时间会显示在这里
  • PCPU:CPU执行程序耗费的时间
  • WHAT:用户正在执行的操作

查看个别用户信息:w 用户名

ps命令   查看系统中的进程。

  • -a:显示所有用户的进程
  • -u:显示用户名和启动时间
  • -x:显示没有控制终端的进程
  • -e:显示所有进程,包括没有控制终端的进程
  • -l:长格式显示
  • -w:宽行显示,可以使用多个w进行加宽显示
  1. ps   --查看隶属于自己的进程
  2. ps –u 或ps –l  --查看隶属于自己进程详细信息
  3. ps –le 或ps –aux  --查看所有用户执行的进程详细信息
  4. ps –aux –sort pid  --可以按照进程执行的时间、PID、UID等对进程进行排序
  5. ps –uU sam  --查看系统中指定用户执行的进程
  6. ps –le | grep init --查看指定进程的信息

10

  • USER:用户名
  • PID:进程号
  • %CPU:占用CPU时间和总时间的百分比
  • %MEN:占用内存与系统内存总量的百分比
  • TTY:进程启动的终端
  • STAT:进程当前状态,S休眠状态,D不可用中断的休眠状态,R运行状态,Z僵死状态,T停止状态
  • NI:进程优先级
  • COMMAND:进程的命令名

pstree    --查看系统中所有进程的树状信息

kill --关闭进程

  • kill 进程号    --关闭进程
  • kill –l   ----查看kill的信号,一般使用1、9
  • kill  -9 进程号  --强行关闭进程
  • kill –1 进程号  --重启进程
  • xkill  ----关闭图形程序,在命令行执行xkill,鼠标变为X图形,点击会关闭相应窗口
  • killall  进程名----结束所有进程
  • pgrep 服务名称 --查找服务进程号
  • pkill 进程名称 --关闭进程

nice --指定程序的运行优先级

格式:nice –n command

例如:nice –5 myprogram

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

格式:renice n pid

例如:renice –5 2343

nohup

使进程在用户推出登陆后仍旧继续执行,nohup命令将执行后的数据信息和错误信息默认存储在文件nohup.ou中

格式: nohup program &

top

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

常用选项:直接摁d或c,启动内置命令

  1. d 指定刷新的时间间隔
  2. c 显示整个命令行而不仅仅显示命令行
  3. u 查看指定用户的进程
  4. k 终止进程
  5. h或? 获得帮助
  6. r 新设置进程优先级
  7. s 变刷新的时间间隔
  8. W 将当前设置写入~/.toprc文件中

7、计划任务

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

at命令格式及参数

  • at [-f 文件名] 时间
  • at –d 或 at atrm 删除队列中的任务
  • at –l 或 atq 查看队列中的任务

绝对计时方法

  • 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

举例:指定在今天下午17:30执行某命令(假设现在时间是下午14:30,2014年1月1日)

  • at 5:30pm
  • at 17:30
  • at now +3 hours
  • at now +180 minutes
  • at 17:30 14.1.1
  • at 17:30 1/1/14

使用命令文件方式

  1. 生成文件at.script;//可以是其他名称
  2. 使用at命令
  3. at –f  at.script 9:00 2/2/14
  4. at < at.script 9:00 2/2/14

使用at执行的命令一般存放在/var/spool/at/XXX临时文件

at配置文件,限制哪些用户可以使用at命令

  • /etc/at.allow
  • /etc/at.deny

如果at.allow文件存在,那么只有列在此文件中的用户才可以使用at命令;若at.allow文件不存在,则检查at.deny文件是否存在。若at.deny存在,则在此文件中列出的用户都不能使用at命令。如果两个文件都不存在,则只有超级用户可以使用at命令。如果两个文件都存在而且均为空,则所有用户都可以使用at命令。

 

batch --安排作业在系统负载不重时执行一次(一般情况下负载较轻指平均负载降到0.8以下)

使用方法同at

crontab --用户生成cron进程所需的crontab文件

命令格式: crontab {-l|-r|-e}

  • -l  显示当前crontab
  • -r  删除当前的crontab
  • -e  使用编辑器编辑当前的crontab文件

举例: crontab –e 0 18 * * 1-5 /sbin/init 5 ---设置开机启动方式

      crontab –e minute hour day month week commands

      选项都不能为空,必须填入,不知道的值使用通配符*表示任何时间

      每个时间字段都可以指定多个值,不连续的值用,间隔,连续的值用-间隔

      命令应该给出绝对路径

      用户必须具有运行所对应的命令或程序的权限

crontab文件建立好了以后可以到/var/spool/cron目录中确认

cron配置文件:/etc/cron.allow和/etc/cron.deny

cron --安排周期性运行的作业

进程处理方式

    1. standalone 独立运行
    2. xinted 进程托管
    3. atd、crond 计划任务,每隔一分钟在休眠中醒来,查看计划任务中有无可执行的计划任务,所以无法精确到秒

小知识

1、/proc目录中存放了系统所有进程相关信息,此目录不存放在硬盘中,只在内存中生成

2、cat /proc/cpuinfo --查看系统cpu信息

3、cat /proc/meminfo --内存信息

4、cat /proc/partitions --分区信息

5、linux中优先级:-20~19

6、CTRL+z  ---进程挂起

7、ctrl+c    ----进程终止

8、jobs  ---查看被挂起的进程

9、fg --回复到前台继续运行

10、bg --回复到后台继续运行

finger –

Linux finger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。

posted on 2014-08-09 19:23  limiracle  阅读(159)  评论(0)    收藏  举报

导航