[Linux] 七,进程管理

课程大纲 『
 进程的概念
 进程管理命令
 计划任务

进程和程序的区别
 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 计划任务
原文地址:https://www.cnblogs.com/robbychan/p/3787048.html