• linux学习笔记--程序与进程管理


    、工作管理

    1、前台程序放后台程序  命令后 加  &

       

     2、任务执行时将前台任务任务放到后台中并【暂停】  ctr + z

    3、jobs 观察后台工作状态 及多少任务在执行,可以通过 help jobs查看jobs选项

      [root@linux ~]# jobs [-lrs]
      参数:
      -l :除了列出 job number 之外,同时列出 PID
      -r :仅列出正在背景 run 的工作;
      -s :仅列出正在背景当中暂停 (stop) 的工作。
      范例:
      范例一:观察目前的 bash 当中,所有的工作,与对应的 PID
      [root@linux ~]# jobs -l
      [1]+ 24988 Stopped /usr/bin/vim ~/.bashrc
      [2]- 25006 Stopped /usr/bin/vim ~/.bash_history

    4、后台工作放前台 fg + %number

     

    5、前台工作放后台后暂停,让后台工作重新运行 bg %number

    6、管理后台程序  kill

    [root@linux ~]# kill -signal %jobnumber
    [root@linux ~]# kill -l
    参数:
    -l :这个是 L 的小写,列出目前 kill 能够使用的讯号 (signal) 有哪些?
    signal :代表给予后面接的那个工作什么样的指示啰!用 man 7 signal 可知:
    -1 :重新读取一次参数的设定档 (类似 reload);
    -2 :代表与由键盘输入 [ctrl]-c 同样的动作;
    -9 :立刻强制删除一个工作;
    -15:以正常的程序方式终止一项工作。与 -9 是不一样的。
    范例:
    范例一:找出目前的 bash 环境下的背景工作,并将该工作删除。
    [root@linux ~]# jobs
    [1]+ Stopped vim bashrc
    [root@linux ~]# kill -9 %1
    [1]+ 已砍掉 vim bashrc
    范例:找出目前的 bash 环境下的背景工作,并将该工作终止掉。
    [root@linux ~]# jobs
    [1]+ Stopped vim bashrc
    [root@linux ~]# kill -SIGTERM %1
    [1]+ 终止 vim bashrc
    # -SIGTERM 与 -15 是一样的!您可以使用 kill -l 来查阅!  

     网页给出杀死进程的多种方法:http://blog.csdn.net/andy572633/article/details/7211546

    关于信号的信息可以参考网页:http://www.xuejiehome.com/blread-1596.html

    2、 程序观察

          静态ps以及动态top来观察程序的运行,以及使用pstree来查看程序之间的联系

         了解ps的使用,可以使用info ps来具体查看ps的信息

         ps 的参数有

    [root@linux ~]# ps aux
    [root@linux ~]# ps -lA
    [root@linux ~]# ps axjf
    参数:
    -A :所有的 process 均显示出来,与 -e 具有同样的效用;
    -a :不与 terminal 有关的所有 process ;
    -u :有效使用者 (effective user) 相关的 process ;
    x :通常与 a 这个参数一起使用,可列出较完整信息。
    输出格式规划:
    l :较长、较详细的将该 PID 的的信息列出;
    j :工作的格式 (jobs format)
    -f :做一个更为完整的输出。
    特别说明:
    由于 ps 能够支持的 OS 类型相当的多,所以他的参数多的离谱!
    而且有没有加上 - 差很多!详细的用法应该要参考 man ps 喔! 

    常用的操作ps有 ps aux

    范例二:列出目前所有的正在内存当中的程序:
    [root@linux ~]# ps aux
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 1 0.0 0.1 1740 540 ? S Jul25 0:01 init [3]
    root 2 0.0 0.0 0 0 ? SN Jul25 0:00 [ksoftirqd/0]

    我们必须要知道的是『疆尸 (zombie) 』程序是什么? 通常,造成疆尸程序的成因是因为该程序应该已经执行完毕,或者是因故应该要终止了, 但是该程序的父程序却无法完整的将该程序结束掉,而造成那个程序一直存在内存当中..... 如果您发现在某个程序的 CMD 后面还接上 <defunct> 时,就代表该程序是疆尸程序啦

    top

    top 也是个挺不错的程序观察工具!但不同于 ps 是静态的结果输出, top 这个程序可以持续的监测 (monitor) 整个系统的程序工作状态,例如上面的范例一所示啊! 在预设的情况下,每次更新程序资源的时间为 5 秒,不过,可以使用 -d 来进行修改。

    [root@linux ~]# top [-d] | top [-bnp]
    参数:
    -d :后面可以接秒数,就是整个程序画面更新的秒数。预设是 5 秒;
    -b :以批次的方式执行 top ,还有更多的参数可以使用喔!
    通常会搭配数据流重导向来将批次的结果输出成为档案。
    -n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
    -p :指定某些个 PID 来进行观察监测而已。
    在 top 执行过程当中可以使用的按键指令:
    ? :显示在 top 当中可以输入的按键指令;
    P :以 CPU 的使用资源排序显示;
    M :以 Memory 的使用资源排序显示;
    N :以 PID 来排序喔!
    T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序。
    k :给予某个 PID 一个讯号 (signal)
    r :给予某个 PID 重新制订一个 nice 值。
    范例:
    范例一:每两秒钟更新一次 top ,观察整体信息:
    [root@linux ~]# top -d 2

    top - 18:30:36 up 30 days, 7 min, 1 user, load average: 0.42, 0.48, 0.45
    Tasks: 163 total, 1 running, 161 sleeping, 1 stopped, 0 zombie
    Cpu(s): 4.7% us, 4.0% sy, 6.3% ni, 82.5% id, 0.4% wa, 0.1% hi, 2.0% si
    Mem: 1033592k total, 955252k used, 78340k free, 208648k buffers
    Swap: 1052216k total, 728k used, 1051488k free, 360248k cached
    <==如果加入 k 或 r 时,就会有相关的字样出现在这里喔!
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    3981 apache 34 19 84012 11m 7352 S 17.3 1.2 0:00.09 httpd
    1454 mysql 16 0 289m 40m 2228 S 3.8 4.0 115:01.32 mysqld
    3985 dmtsai 15 0 2148 904 668 R 3.8 0.1 0:00.03 top
    1 root 16 0 3552 552 472 S 0.0 0.1 0:08.90 init
    2 root RT 0 0 0 0 S 0.0 0.0 0:52.76 migration/0
    3 root 34 19 0 0 0 S 0.0 0.0 0:03.01 ksoftirqd/0

    kill 后面接%jobnumber或者后面直接接pid 杀死某一个进程

    kill all 将下达指令的名称的进程杀死

    killall -9 httpd               #将以httpd命名的进程杀死

    free [-b|-k|-m|-g] [-t]   #显示系统的版本内核等信息
    参数:
    -b :直接输入 free 时,显示的单位是 Kbytes,我们可以使用 b(bytes), m(Mbytes)
    k(Kbytes), 及 g(Gbytes) 来显示单位喔!
    -t :在输出的最终结果,显示物理内存与 swap 的总量。

    uname [-asrmpi]           #显示系统版本信息
    参数:
    -a :所有系统相关的信息;
    -s :系统核心名称
    -r :核心的版本
    -m :本系统的硬件名称
    -p :CPU 的类型
    -i :硬件的平台 (ix86)

    uptime    #就是显示出目前系统已经开机多久的时间

    sar           [-ru] [秒数] [次数]   #主动侦测主机资源的使用情况
    参数:
    -u :进行 CPU 资源的统计;
    -r :进行主存储器目前状态的分析

    3、关于程序的顺序执行利用ps -l可以查看当前环境进程信息,为了是使得各程序的运行合理,系统为每个进程都分配优先级,用户可以通过nice这个参数为某个进程调整优先级,

    nice影想程序的优先级,PRI(new) = PRI(old) + nice,数字越小代表优先级越高。

    • 一般使用者的 nice 值为 0 ~ 19 ;
    • root 可用的 nice 值为 -20 ~ 19 ;

      一开始执行程序就立即给予一个特定的 nice 值:用 nice 指令;
          调整某个已经存在的 PID 的 nice 值:用 renice 指令。

          nice [-n] command        #调用nice函数

    整个nice的操作是在父子进程之间进行传递的,父进程的nice改变,相应的子进程的nice值也发生改变。

     

  • 相关阅读:
    nginx 超时配置、根据域名、端口、链接 配置不同跳转
    nginx 作用,初认识
    JVM理解
    使用开发IDE生成一个springboot工程。
    到spring官网创建第一个springboot工程
    linux 忘记root密码怎么处理。
    学习重新开始
    共同父域下的单点登录
    Bootstrap 与 Jquery validate 结合使用——多个规则实现
    Bootstrap 与 Jquery validate 结合使用——简单实现
  • 原文地址:https://www.cnblogs.com/moss-yang/p/6864545.html
Copyright © 2020-2023  润新知