首页 > 代码库 > Linux进程管理(-)

Linux进程管理(-)

一、进程的类型

         可以将运行在Linux系统中的进程分为三种不同的类型:

                   交互进程:由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台   运行。

                   批处理进程:不与特定的终端相关联,提交到等待队列中顺序执行的进程。 守护进程:在Linux在启动时初始化,需要时运行于后台的进程。

二、进程的启动方式

         手工启动

                   前台启动:是手工启动一个进程的最常用的方式。一般地,用户键入一个命令“ls  -l”,这就已经启动了一个进程,而且是一个前台的进程。

                   后台启动:直接从后台手工启动一个进程用得比较少一些,除非是该进程甚为耗时, 且用户也不急着需要结果的时候。

                  ls –R / >list &

                  调度启动

         调度启动方式是事先进行设置,根据用户要求让系统自行启动

三、查看系统中的进程

         1、ps命令

         功能:ps命令是用来显示系统瞬间的进程信息,它可以显示出在用户输入ps命令时系统的进程及进程的相关信息。

                     格式:ps [选项]

                   [root@hostpp]$ ps          显示本账号的进程

                   [root@hostpp]$ ps –aux   查看系统和每位用户全部进程

                   由于ps –aux会列出系统中正在运行的所有进程,因此不易找到特定的进程。若搭 配grep命令,则可事半功倍:[root@host pp]$ ps –aux|grep pp  查找pp的进程

         Ps命令使用说明:

                   常用参数:

                                      a:显示所有进程

                                      u:显示较详细的信息

                                      x:显示所有包含其它使用者的进程。

                   使用范例:

                                   ps

                                   ps –au

                                   ps -aux

                                   ps –aux | more

                                  ps –aux | grephttpd

                                  ps –aux >/tmp/ps.log

         2、Top命令监视系统资源使用情况

                  每5秒钟刷新一次,动态显示

                   按下U键:输入用户名   查看用户进程

                   按下K键:输入PID    删除进程

四、控制系统中的进程

         1、kill命令和killall命令

         kill命令不但能杀死进程,同时也会杀死该进程的所有子进程。

         kill命令的格式是:kill –signalPID

         为什么要杀死进程

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

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

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

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

                           无法正常退出

                  用户也可以用killall命令来杀死进程,在killall命令后面指定的是要杀死的进程的     命令名称,而不是PID

         范例:kill –9927    参数-9:强制杀死

         2、nice命令

                  nice

                         指定程序的运行优先级

                        格式:nice –n command

                        [root@hostroot]# nice - -5 myprogram&

                        在后台以-5的优先级运行myprogram

                      其中n是为进程运行指定的优先级,n的数值越大,进程的优先级越低.n可以取负  值让运行级提高。

         3、renice命令

                   renice

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

                            格式:renice –n pid   是被指定的进程

                            [root@hostroot]# renice - -5  777

                            将正在运行的PID为777的进程优先级改为-5

         4、在后台运行程序的&、bg命令

                  [root@host root]# cp –r /usr/* test&        

                  将/usr目录下的所有子目录及文件复制到/root/test目录下的工作放到后台运行

                  [root@host root]# fg    放到前台并显示执行过程

                  按下Ctrl+z键挂起该运行程序

                  [root@host root]# bg   再将执行过程放到后台

                  [root@host root]# jobs       查看被挂起的进程

         5、进程的挂起和恢复

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

                  挂起(Ctrl+Z)

                   终止(Ctrl+C)

                   进程的恢复

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

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

                   查看被挂起的进程(jobs)

         6、自动安排进程任务

                  自动启动进程的几个命令

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

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

               系统负载大于1.5不运行。

              cron      安排周期性运行的作业

         7、at和batch

                   at命令用来指定在某一时刻执行命令,at命令的格式是:at  [选项]  时间

                  at的配置文件

                      作用:限制哪些用户可以使用at命令

                          /etc/at.allow

                          /etc/at.deny

                   batch命令的用法和at类似,只是用户可以不必指定时间,batch会在系统负载小   于1.5的时候运行命令。

         8、应用程序cron

                  Cron进程搜索crontab文件并载入内存 ( crontab文件即/etc/crontab文件和 /var/spool/cron/目录下以用户名命名的文件)

                  cron进程启动以后,它将首先检查是否有用户设置了crontab文件,如果没有就转  入“休眠”状态,释放系统资源

                   cron进程每分钟醒来一次,查看crontab文件决定当前是否有需要执行的命令。命  令执行结束后,任何输出都将作为邮件发送给crontab的所有者

        

                   crontab命令的作用及格式

                   作用:用于生成cron进程所需要的crontab文件

                            crontab的命令格式

                            crontab[-u user] file

                            crontab[-u user] {-l|-r|-e}

                         -l 该选项将使在标准输出上显示当前的crontab

                         -r 删除当前的crontab

                       -e 使用编辑器编辑当前的crontab文件。

                当结束编辑离开时,编辑后的文件将自动安装

         Crontab文件格式:

                   Minute  Hour Day  Month  DayofWeek Command

               字段                 所代表的意义          可用范围

                   Minute             每小时的第几分钟运行该程序         0 ~ 59

                   Hour               每一天的第几小时运行该程序      0 ~23

                   Day               每个月的第几天运行该程序        1 ~ 31

                   Month             每一年的第几个月运行该程序          1 ~  12

                   Dayof Week            每一周的第几天运行该程序            0~ 6

                   Command              指定要运行的程序           输入要执行的命令及参数

                  

         范例:

                   20 4 * * * program

               指定每天的4点20分执行program命令

                   50 3 9 * * program

                   指定每月的9日3点50分执行program命令

                   1 0 8 9 * program 或

                   1 0 8 sep * program

                   指定每年的9月8日0点1分执行program命令

 

         9、计划任务创建方法

                   如果需要在每周2、4、6凌晨3点使系统进入维护状态,重新启动系统,设该文件 名为/root/reboot.cron:

                  1.创建一个crontab

                  # echo “00 03 * * 2,4,6 shutdown –r +10”>/root/reboot.cron

                   2.使用crontab命令安装/root/reboot.cron文件

                   #crontab/root/reboot.cron        安装

                   [root@hostroot]# corntab –e

                   创建root用户的corn文件

                   5514 * * * ls /root        corn内容   

                   [pp@hostpp]$ crontab –e 创建pp用户的corn文件 

                   3018 * * * ll /home/pp                    corn内容

                   [root@hostroot]# crontab –r    删除root的cron

 

Linux进程管理(-)