zoukankan      html  css  js  c++  java
  • Linux 进程管理

    Linux 进程管理

    进程的概念

         进程管理命令

     计划任务

     

    进程和程序的区别

    1、程序是静态概念,本身作为一种软件资源长期

    保存;而进程是程序的执行过程,它是动态概

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

    2、程序和进程无一一对应关系。一个程序可以由

    多个进程共用;另一方面,一个进程在活动中有

    可顺序地执行若干个程序。

     

    父进程与子进程

    1、子进程是由一个进程所产生的进程,产生这个

    子进程的进程称为父进程。

    2、在Linux系统中,使用系统调用fork创建进程。

    fork复制的内容包括父进程的数据和堆栈段以及

    父进程的进程环境。

    1. 父进程终止子进程自然终止。

       

      前台进程和后台进程

      前台进程:

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

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

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

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

      后台进程:

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

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

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

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

      例如: # find / -name init > /test/init.find &

      进程状态

      就绪:进程已经分

      配到资源,但因为

      其它进程正占用

      CPU,所以暂时不

      能运行而等待分配

      CPU的状态。

      等待:因等待某种

      事件而暂时不能运

      行的状态。

      运行:进程分配到

      CPU,正在处理器

      上运行。

       

      进程状态细化

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

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

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

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

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

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

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

      在内存暂停:因调用stop程序而进入跟踪暂停状态,等待其

      父进程发送命令。

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

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

      终止态:进程终止自己

       

       

      查看用户信息 w

       w显示信息的含义

           JCPU:以终端代号来区分,该终端所有相

      关的进程执行时,所消耗的CPU时间会显示在这里

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

               WHAT:用户正在执行的操作

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

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

       FROM:显示用户从何处登录系统,":0"的

      显示代表该用户时从X Window下,打开文

      本模式窗口登录的

       IDLE:用户闲置的时间。这是一个计时

      器,一旦用户执行任何操作,该计时器便会被重置

       

      查看系统中的进程 ps

      常用选项

       a:显示所有用户的进程

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

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

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

       l:长格式显示

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

      ps常用输出信息的含义

       PID:进程号

       PPID:父进程的进程号

       TTY:进程启动的终端

       STAT:进程当前状态

      S休眠状态,D不可中断的休眠状态,R运行

      状态,Z僵死状态,T停止

       NI:进程优先级

       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 -aux | grep sam

      # ps -uU sam //查看sam用户执行的进程

      查看系统中指定用户执行的进程

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

      pstree | more 查看进程树状

       

      kill – 杀死进程

      为什么要杀死进程

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

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

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

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

       无法正常退出

       

      kill – 关闭进程

       关闭进程:kill 进程号

       kill -9 进程号(强行关闭)

       kill -1 进程号(重启进程)

       关闭图形程序:xkill

       结束所有进程:killall //# killall httpd 关闭httpd所有进程

      查找服务进程号:pgrep 服务名称 //# pgrep httpd

      关闭进程:pkill 进程名称 //# pkill httpd

       

      nice和renice

       nice

           指定程序的运行优先级

           格式:nice -n command

      例如:nice -5 myprogram // # nice --5 /etc/rc.d/init.d/httpd start

       renice

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

       格式:renice n pid

       例如:renice -5 777 // ps - le | grep httpd 查看httpd进程

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

       

      nohup

      使进程在用户退出登陆后仍旧继续执

      行,nohup命令将执行后的数据信息和

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

      格式:nohup program &

      案例: # nobup find / -name init* > /root/find.init.20110106 &

       

      进程的挂起和恢复

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

       挂起(Ctrl+Z)

       终止(Ctrl+C)

       进程的恢复

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

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

       查看被挂起的进程(jobs)

       

      top

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

      常用选项:

       d:指定刷新的时间间隔

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

       

      常用命令:

       u:查看指定用户的进程

       k:终止执行中的进程

       h or ?:获得帮助

       r:重新设置进程优先级

       s:改变刷新的时间间隔

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

       

      计划任务

       为什么要设置计划任务

       计划任务的命令

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

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

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

       

      at命令的功能和格式

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

      运行一次

      at的命令格式及参数

      at [-f 文件名] 时间

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

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

       

      at命令指定时间的方式

       绝对计时方法

       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,2011年1月11日)。

       命令格式如下∶

      at 5:30pm

      at 17:30

      at 17:30 today

      at now + 3 hours

      at now + 180 minutes

      at 17:30 11.1.11

      at 17:30 1/11/11

       

      at命令使用范例

       交互方式

      at 9:00

       使用命令文件方式

      1. 生成文件at.script:

      2. 使用at命令

      at -f at.script 9:00 2/2/11

      or

      at < at.script 9:00 2/2/11

       

      at配置文件

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

       /etc/at.allow

       /etc/at.deny

       

      at的执行结果和配置文件

      如果/etc/at.allow文件存在,那么只有列在此

      文件中的用户才可以使用at命令;若

      /etc/at.allow文件不存在,则检查/etc/at.deny

      文件是否存在。若/etc/at.deny存在,则在此

      文件中列出的用户都不能使用at命令。如果

      两个文件都不存在,则只有超级用户可以

      使用at命令。如果两个文件都存在而且均为

      空,则所有用户都可以使用at命令。

       

      batch命令

       作用:安排一个或多个命令在系统负载较

      轻时运行一次(一般情况下负载较轻指平

      均负载降到0.8以下)。

       使用方法同at

       

      crontab命令格式

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

       crontab的命令格式

      crontab {-l|-r|-e}

       -l 显示当前的crontab

       -r 删除当前的crontab

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

       

      crontab文件格式

      minute hour day-of-month month-of-year day-of-week

      commands

       其中

       Minute 一小时中的哪一分钟 [0~59]

       hour 一天中的哪个小时 [0~23]

       day-of-month 一月中的哪一天[1~31]

       month-of-year 一年中的哪一月[1~12]

       day-of-week 一周中的哪一天[0~6]

       commands 执行的命令

      例如:

      分钟 小时 天 月 星期 命令/脚本

      1.     4     *     * *
        1.     18     * * 2,5

        0 18 *     1-3 2,5

        30 17 * * 1-5 /usr/bin/wall < /etc/issue

        45 17 * * 1-5 /sbin/shutdown -h now

        */2        12-14 * 3-6,9-12 1-5 /bin/cp -r /etc/backup/etc.20110111 2>/backup/etc.bak.err >/derv/null 注释: */2 每隔2分钟

      书写注意事项

       选都不能为空,必须填入,不知道的值

      使用统配符*表示任何时间

       每个时间字段都可以指定多个值,不连

      续的值用, ,间隔,连续的值用- -间隔。

       命令应该给出绝对路径

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

      附加: # ps - le | grep crond 查看系统是否启动crond进程

      # /etc/rc.d/init.d/crond start

      # vi /etc/crontab //crontab配置文件

      crontab应用示例

      应用范例:

      # crontab -e

      55 17 * * 1-5 /usr/bin/wall < /etc/motd

      0 18 * * 1-5 /sbin/init 5

      0 0 1,15 * 1 /bin/cp -R /etc /backup/etc.0111

      * crontab文件建立好以后可以到/var/spool/cron

      目录确认

       

      cron配置文件

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

       /etc/cron.allow

       /etc/cron.deny

       

      进程处理方式

       standalone 独立运行

      附加: # netstat -an | grep "LISTEN" | more

       xinetd 进程托管

      附加: # ps -le | grep inetd

       atd、crond 计划任务

    博主QQ 343264992 QQ群交流:100411237 添加时候请备注博客园
  • 相关阅读:
    tomcat 配置ssi
    oracle exp imp 导入 正在跳过表 plsql 导入表 成功终止 数据 被导入
    oracle 创建数据表空间和用户
    移动端开发来个总结吧
    ssl四次握手
    面试-布局
    typeof的原理?
    马上面试了就,复习一下排序
    关于webview无法设置页面标题
    关于let的生命提升
  • 原文地址:https://www.cnblogs.com/chengkanghua/p/9236564.html
Copyright © 2011-2022 走看看