2010.7.16
什么是进程 ?简单的理解,一个进程就是载入在内存中的一组程序指令,是一个应用程序的运行实例。通常使用进程号(PID)来对进程进行识别。进程同样也包含有UIDGIDSELinux安全上下文等一些从执行者那里继承过来的权限和属性。
进程是用户的代理,用户对计算机的操作是通过进程来实现的。
ls  /proc
进程标识符:1-32767  有符号的16位二进制数  eg.1永远属于init
任何子进程都是父进程fork(复制自己)出来的,若父进程不满足子进程的需要,可以进行修改
 
①内存管理
②进程管理
③硬件管理
CPU管理àtime slice时间片
⑤文件系统管理
进程的优先级由数字来区分,数值越小,优先级越高。但是优先级可以调整。
可以通过调整进程的MAX值来动态调整优先级别。
ps查看当前启动的进程信息
可接受的选项GNUBSDUNIX。有可带“-”的,也有不能带“-”的(BSD
进程可分为用户进程和守护进程两类。用户进程àterminalàshell。守护进程:工作在后台,与terminal无关的,开机自动启动的。
a   用来显示和终端有关的进程
    pts/1 当前终端
     ?
不匹配任何终端,未进入终端之前运行的程序
x   用来显示和终端无关的进程(后台的守护进程)
u   以用户为导向中心的进程信息(进程的发起者,即进程的属主)
s   使用一个字符显示进程状态(D不可终端的睡眠;R正在运行或可运行的进程;S可终端的睡眠;Z父进程无法结束子进程
o   自定义需要显示的信息
f    显示进程间的父子关系 
    @# init
是所有进程的父进程
    RSS
真实进程
    VSZ
虚拟进程
ps axo (option)
  ps axo comm,tty |grep ttys0
  pgrep -U  
查看某一个用户
  pgrep -G  
查看某一个用户组
  pidof bash
查看某一个程序

Signals(信号)
  signal (15)
正常结束
  signal 9   
强制结束  产生垃圾(临时)文件
  signal 1   
重新读取配制文件
管理进程
  kill [sign]PID 
结束一个正在运行的进程
   @# service vsftpd reload
重新加载vsftpd
  killall httpd  
结束某个服务的所有进程
  pkill
整合以上两者。
进程的优先级
  
①进程优先级的范围是-20~19 数字越小,优先级越高。
   
②默认情况下所有进程的优先级都为0.
   
③对于一个未运行的程序    a.$ renice -n -5 command
   
④对于一个正在运行的程序   b.$ renice $5 PID
计划任务:
at 仅执行一次就从计划中删除, 某个待定时刻要做的事情。
crontab
#crontab -e             
编辑当前用户的cron
#crontab -l              
查看当前用户的cron
#crontab -r             
删除当前用户的cron进程
#crontab -u
用户名 以某用户的身份来控制cron
周期
*       *       *       *       * 
                      
30      23      1       *       * 
即每个月的12330分。
*     10,12     1       *       * 
即每个月的11012时的每一钟执行。
第一个*星号代表个小时的第几分钟:minute 范围是从0-59
第二个*星号代表每天的第几个小时:hour 范围是从0-23
第三个*星号代表每月的第几个日:day-of-month 范围从1-31
第四个*星号代表没年的第几个月:month-of-year 范围从1-12
第五个*星号代表每周的星期几:day-of-week 范围从0-6,其中0表示星期日
命令分组:
小括号表示在子shell里运行的
trap 捕捉信号命令
eg.trap ‘echo “You stop the pingping…” && exit 3’ INT
捕捉Ctrl+c信号,捕捉到后,输出一句话并返回一个值—3.
PATH用来定义命令搜索路径
LANG定义默认语言
hash显示执行过的命令(搜索路径)
 
/etc/profile/etc/profile.d/*/etc/bashrc  全局设置
~/.bash_profile~/.bashrc 
/etc/profileàlogin shell 只对登陆shell生效