码迷,mamicode.com
首页 > 系统相关 > 详细

linux系统进程管理

时间:2017-05-09 22:30:07      阅读:349      评论:0      收藏:0      [点我收藏+]

标签:linux系统进程管理

linux系统进程管理

一、进程的概述

1、进程的概述

(1)进程:运行中的程序的一个副本,是被载入内存的一个指令集合;通常通过进程ID(Process ID,PID)号来标记各个进程

(2)特点:通常从执行进程的用户来继承、进程存在生命周期

(3)task struct:Linux内核存储进程信息的数据结构格式

(4)task list:多个任务的的task struct组成的链表

(5)进程的创建:

   1)第一个进程,centos6上为init,centos7上为systemd

   2)进程的创建:都有其父进程创建

(6)进程内存:

   1)Page Frame: 页框,用存储页面数据,存储Page 4k

   2)LRU:Least Recently Used 近期最少使用算法,释放内存

   3)物理地址空间和线性地址空间

     MMU:Memory Management Unit负责转换线性和物理地址

     TLB:TranslationLookaside Buffer 翻译后备缓冲器,用于保存虚拟地址和物理地址映射关系的缓存

(7)进程的分类:

   1)cpu密集型

   2)io密集型

2、进程的优先级

(1)系统优先级(rtprio):越小越优

   1)centos5:0-139 各有140个运行队列和过期队列

   2)centos6:0-99

(2)实时优先级(pri):越大越优

(3)nice值:-20~19,对应系统优先级的100-139或99

3、进程的查看ps命令

(1)用法:ps [OPTION]...

(2)选项:UNIX选项:-A -e

         BSD选项:a

         GUN选项:—help

      a 选项包括所有终端中的进程(默认显示的是当前终端中的进程)

      x 选项包括不链接终端的进程

      u 选项显示进程所有者的信息

      f 选项显示进程的父进程

       o 属性… 选项显示定制的信息:(后可跟:pid、comm、%cpu、%mem、state、    

tty、euser、ruser)

(2)进程状态各项参数说明:

[root@dayi123-6 ~]# ps aux  #查看系统的所有进程

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root          1  0.0  0.1  19236  1508 ?        Ss   05:34   0:02 /sbin/init

root          2  0.0  0.0      0     0 ?        S    05:34   0:00 [kthreadd]

root          3  0.0  0.0      0     0 ?        S    05:34   0:00 [migration/0]

         1)PID:进程号

   2)%CPU:进程对cpu的占用率

   3)%MEM:系统对内存的占用了率

   4)VSZ: Virtual memory SiZe,虚拟内存集,线性内存

   5)RSS: ReSidentSize, 常驻内存集

   6)STAT:进程的状态,常见的状态:

      R:running(运行进程)

      S: interruptablesleeping(睡眠进程)

      D: uninterruptable sleeping

      T: stopped(停止进程)

      Z: zombie

      +: 前台进程

      l: 多线程进程

      L:内存分页并带锁

      N:低优先级进程

      <: 高优先级进程

      s: session leader,会话(子进程)发起者

(3)查看进程:

[root@dayi123-6 ~]# ps ef  #以完整的格式显示所有的进程信息

   PID TTY      STAT   TIME COMMAND

 25350 pts/0    Ss     0:00 -bash USER=root LOGNAME=root HOME=/root PA

 25390 pts/0    R+     0:00  \_ ps ef HOSTNAME=dayi123-6.9 SELINUX_ROL

[root@dayi123-6 ~]# ps  –eFH  #以层级格式显示所有的完整进程信息

UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD

root          2      0  0     0     0   0 05:34 ?        00:00:00 [kthreadd]

root          3      2  0     0     0   0 05:34 ?        00:00:00   [migration/0]

root          4      2  0     0     0   0 05:34 ?        00:00:00   [ksoftirqd/0]

[root@dayi123-6 ~]# ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid #以定制的方式显示进程信息

STAT  EUID  RUID TT        TPGID   SESS   PGRP   PPID

Ss       0     0 ?            -1      1      1      0

S        0     0 ?            -1      0      0      0

…….

4、进程的管理

(1)查看进程的优先级

   1)ni: nice值

   2)pri: priority优先级

   3)psr: processor CPU编号

   4)rtprio: 实时优先级

[root@dayi123-6 ~]# ps -axo pid,cmd,psr,ni,pri,rtprio   #根据定制显示系统优先级 

Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ

   PID CMD                         PSR  NI PRI RTPRIO

     1 /sbin/init                      0   0  19      -

     2 [kthreadd]                     0   0  19      -

     3 [migration/0]                   0   -  139     99

(2)在命令执行时指定优先级:nice [OPTION] [COMMAND [ARG]...]

#在命令执行时修改优先级

[root@dayi123-6 ~]# nice –n -10 dd if=/dev/zero of=/dev/null bs=1G

[root@dayi123-6 ~]# ps -axo pid,cmd,psr,ni,pri,rtprio  #查看执行的命令的优先级

   PID  CMD                         PSR  NI  PRI  RTPRIO

   25471 dd if=/dev/zero of=/dev/nul      0   -10  29      -

(3)在命令执行时候修改nice优先级

[root@dayi123-6 ~]# renice -n 10 -p 25479   #命令执行后修改优先级

25479: old priority -10, new priority 10

[root@dayi123-6 ~]# ps -axo pid,cmd,psr,ni,pri,rtprio  #查看修改后的nice优先级

   PID  CMD                         PSR  NI  PRI  RTPRIO

25479 dd if=/dev/zero of=/dev/nul          0  10   9      -

5、进程搜索:

(1)用法:pgrep [options] pattern

   选项:

   1)-u uid: effective user,生效者

   2)-U uid: real user,真正发起运行命令者

   3)-t terminal: 与指定终端相关的进程

   4)-l: 显示进程名

   5)-a: 显示完整格式的进程名

   6)-P pid: 显示指定进程的子进程

[root@dayi123-6 ~]# pgrep -u 0   #搜索由uid0发起的进程

1

2

……

[root@dayi123-6 ~]# pgrep  -P 1231  #搜索1231产生的子进程

25346

(2)按确切的程序名称搜索:/sbin/pidof

[root@dayi123-6 ~]# pidof sshd     #按程序搜索进程

25346 1231                     #第一个为进程的pid,第二个为父进程的pid

二、系统资源的查看

1、uptime命令的使用

(1)作用:显示当前时间,系统已启动的时间、当前上线人数,系统平均负载(1、5、10分钟的平均负载,一般不会超过1)

(2)参数说明:系统平均负载:指在特定时间间隔内运行队列中的平均进程数

   通常每个CPU内核的当前活动进程数不大于3,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么此主机的性能有严重问题

[root@dayi123 ~]$uptime

 09:01:32 up 21:37,  4 users,  load average: 0.08, 0.15, 0.15

2、top命令

(1)作用:实时动态的查看系统的整体运行情况

(2)用法:top [选项]

   选项:-d #指定top命令每隔几秒更新,默认是三秒

       -b:以批次方式显示

       -n #:显示多少批次

(3)在top的交互模式中可执行的命令

     P:以占据的CPU百分比,%CPU

     M:占据内存百分比,%MEM

     T:累积占据CPU时长,TIME

     q:退出命令:

     s:修改刷新时间间隔:

     k:终止指定进程:

     w: 保存文件

(4)在top交互模式先调整首部信息的显示

     uptime信息:l命令

     tasks及cpu信息:t命令

     cpu分别显示:1 (数字)

     memory信息:m命令

(5)栏位信息的说明

[root@dayi123 ~]$top

top - 09:24:08 up 22:00,  4 users,  load average: 0.00, 0.06, 0.11

Tasks: 211 total,   3 running, 208 sleeping,   0 stopped,   0 zombie

%Cpu(s):  6.3 us,  0.6 sy,  0.0 ni, 93.2 id,  0.0 wa,  0.0 hi,  0.0 si,

KiB Mem :   999936 total,   196468 free,   576032 used,   227436 buff/c

KiB Swap:  2098172 total,  1983628 free,   114544 used.   202024 avail

 

   PID USER      PR   NI    VIRT    RES    SHR S  %CPU %MEM  TIME+

  6940 gdm       20   0  1368900  56228   5684 R  5.8  5.6   69:46.84

  6910 gdm       20   0   34944   1212    592 S   0.3   0.1   3:38.06

  6992 gdm       20   0  572964   5152    984 S   0.3   0.5   3:56.50

  2955 dayi123    20   0   1504688 138712   5840 S  0.2  13.9   2:07.73

        1)第一行:为任务队列信息(相对于uptime)

    2)第二行:为进程信息

    3)第三列:为cpu信息

       us :用户模式占用的cpu百分比

       sy :系统模式占用的cpu百分比

       ni :调整nice时间

       id :空闲的cpu占用cpu百分比

       wa:等待输入输出的进程占用cpu百分比

       hi :硬中段请求服务占用的cpu百分比

       si :软中段请求服务占用的cpu百分比

       st :虚拟时间百分比,当有虚拟机时,虚拟cpu等待时机cpu的百分比

    4)第四行:物理内存信息

    5)第五行:交换分区swap信息

3、htop命令

(1)作用:是Linux系统中的一个互动的进程查看器,与top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标(htop命令默认没有安装,需从Fedora-EPEL源安装)。

(2)用法:htop [选项]

  选项:-d #: 指定延迟时间;

       -u UserName: 仅显示指定用户的进程

       -s COLUME: 以指定字段进行排序

(3)子命令:

     s: 跟踪选定进程的系统调用

     l: 显示选定进程打开的文件列表

     a:将选定的进程绑定至某指定CPU核心

     t: 显示进程树

4、vmstat命令

(1)作用:显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态

(2)用法:vmstat [options] [delay [count]]

     常用参数:事件间隔:状态信息刷新的时间间隔

            次数:显示报告的次数

     常用选项:-s: 显示内存的统计数据

(3)使用及参数的说明

[root@dayi123 ~]$vmstat 2 3   #显示三次,每隔两秒更新一次

procs  -----------memory----------       ---swap--  -----io----  -system--  ------cpu-----

 r  b   swpd   free   buff cache   si   so    bi   bo  in   cs   us  sy id wa  st

 2  0 118884 128476   36  295068  0   1    39    6  132  170  4  1 94  0  0

 0  0 118884 128476   36  295068  0   0     0    0  136  179  5  1 94  0  0

 0  0 118884 128452   36  295068  0   0     0    0  151  201  6  1 94  0  0

……

         1)procs(进程):

       r:等待运行的进程的个数,和核心数有关

       b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度)

   2)memory(内存):

       swpd: 交换内存的使用总量

       free:空闲物理内存总量

       buffer:用于buffer的内存总量

       cache:用于cache的内存总量

   3)swap:

       si:从磁盘交换进内存的数据速率(kb/s)

       so:从内存交换至磁盘的数据速率(kb/s)

   4)io:

       bi:从块设备读入数据到系统的速率(kb/s)

       bo: 保存数据至块设备的速率

   5)system(系统):

       in: interrupts, 中断速率,包括时钟

      cs: context switch, 进程切换速率

   6)CPU(以百分比表示)

    us: 用户进程执行时间百分比(user time) us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。

    sy: 内核系统进程执行时间百分比(system time) sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。

    wa: IO等待时间百分比 wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。

    id: 空闲时间百分比

5、iostat

(1)作用:统计cpu和设备io信息

(2)iostat(选项)(参数)

  选项:-c:仅显示CPU使用情况;

      -d:仅显示设备利用率;

      -k:显示状态以千字节每秒为单位,而不使用块每秒;

      -m:显示状态以兆字节每秒为单位;

      -p:仅显示块设备和所有被使用的其他分区的状态;

      -t:显示每个报告产生时的时间;

      -V:显示版号并退出;

      -x:显示扩展状态。

  参数:间隔时间:每次报告的间隔时间(秒);

      次数:显示报告的次数。

[root@dayi123 ~]# iostat -mx 3 1  #显示设备状态信息,每三秒更新一次,共显示一次

Linux 3.10.0-327.el7.x86_64 (dayi123)   05/08/2017      _x86_64_    (1 CPU)

 

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           0.52    0.08    0.59    0.12    0.00   98.70

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

sda               0.05     0.37    0.70    0.20     0.02     0.00    64.00     0.05   51.62   14.35  182.94  16.48   1.47

scd0              0.00     0.00    0.01    0.00     0.00     0.00     4.38     0.00    2.94    2.94    0.00   2.94   0.00

6、pmap命令

(1)作用:用于报告进程的内存映射关系

(2)用法:pmap[options] pid[...]

     选项:-x:显示扩展格式;

          -d:显示设备格式;

          -q:不显示头尾行;

[root@dayi123 ~]# pmap -x 1    #显示进程为1的内存映射详细信息

1:   /usr/lib/systemd/systemd --switched-root --system --deserialize 21

Address           Kbytes     RSS   Dirty Mode  Mapping

00007fbfc4000000     164      12      12 rw---   [ anon ]

00007fbfc4029000   65372       0       0 -----   [ anon ]

00007fbfc9651000       4       0       0 -----   [ anon ]

00007fbfc9652000    8192       8       8 rw---   [ anon ]

00007fbfc9e52000       4       0       0 -----   [ anon ]

7、glances命令

(1)作用:监视 CPU、负载、内存、磁盘 I/O、网络流量、文件系统、系统温度等信息(默认没有安装,需要安装,glances在epel源中)

(2)用法:glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]

     选项:-b:显示网络连接速度 Byte/ 秒

         -B @IP|host :绑定服务器端 IP 地址或者主机名称

         -c @IP|host:连接 glances 服务器端

         -C file:设置配置文件默认是 /etc/glances/glances.conf

         -d:关闭磁盘 I/O 模块

         -e:显示传感器温度

         -f file:设置输出文件(格式是 HTML 或者 CSV)

         -o {HTML|CSV}:输出格式

         -m:关闭挂载的磁盘模块

         -n:关闭网络模块

         -p PORT:设置运行端口默认是 61209

         -P password:设置客户端 / 服务器密码

         -s:设置 glances 运行模式为服务器

         -t sec:设置屏幕刷新的时间间隔,单位为秒,默认值为 2 秒,数值许可范围:1~32767

         -h : 显示帮助信息

         -v : 显示版本信息

技术分享

(3)以c/s模式运行glances

   1)服务端操作:

    glances -s -B IPADDR(指明监听的本机哪个地址)

[root@dayi123 ~]# glances -s -B 172.16.250.102

Glances server is running on 172.16.250.102:61209

   2)客户端模式:

   glances -c IPADDR(要连入的服务端的ip地址)

[root@dayi123-6 ~]# glances -c 172.16.250.102  #客户端连接服务端查看服务端系统信息

 dayi123 (CentOS Linux 7.2.1511 64bit / Linux 3.10.0-327.el7.x86_64)

 

CPU       1.1%   Load   1-core   Mem    68.4%     Swap    7.3%

user:     0.5%   1 min:   0.01   total:  978M     total: 2.00G

system:   0.6%   5 min:   0.11   used:   669M     used:   150M

idle:    98.9%   15 min:  0.19   free:   309M     free:  1.85G

…….

8、dstat命令

(1)作用:是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具(需要安装)

(2)用法:dstat[-afv] [options..] [delay [count]]

  选项:-c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息。

      -C:当有多个CPU时候,此参数可按需分别显示cpu状态例:-C 0,1 显示cpu0和cpu1的信息。

      -d:显示磁盘读写数据大小。

      -D hda,total:include hda and total。

      -n:显示网络状态。 -N eth1,total:有多块网卡时,指定要显示的网卡。

      -l:显示系统负载情况。

      -m:显示内存使用情况。

      -g:显示页面使用情况。

      -p:显示进程状态。

      -s:显示交换分区使用情况。

      -S:类似D/N。

      -r:I/O请求情况。

      -y:系统状态。

      --ipc:显示ipc消息队列,信号等信息。

      --socket:用来显示tcp udp端口状态。

      -a:此为默认选项,等同于-cdngy。     

      -v:等同于 -pmgdsc -D total。

      --output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指  定的文件中,以便日后查看。例:dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中。

[root@dayi123 ~]# dstat -tsp --socket –fs   #监控swapprocesssocketsfilesystem并显示监控时间

----system---- ----swap--- ---procs--- ------sockets------ --filesystem-

     time     | used  free|run blk new|tot tcp udp raw frg|files  inodes

08-05 22:28:28| 150M 1898M|0.0   0 0.8|  1   4  12   0   0| 6048  40192

08-05 22:28:29| 150M 1898M|  0   0   0|  1   4  12   0   0| 6048  40192

08-05 22:28:30| 150M 1898M|  0   0   0|  1   4  12   0   0| 6048  40192

[root@dayi123 ~]# dstat -tsp --socket --fs --output /tmp/ds.csv  #将监控结果输出到文件

----system---- ----swap--- ---procs--- ------sockets------ --filesystem-

     time     | used  free|run blk new|tot tcp udp raw frg|files  inodes

08-05 22:29:49| 150M 1898M|0.0   0 0.8|  1   4  12   0   0| 6048  40193

08-05 22:29:50| 150M 1898M|  0   0   0|  1   4  12   0   0| 6048  40193

08-05 22:29:51| 150M 1898M|  0   0   0|  1   4  12   0   0| 6048  40193

(3)监控参数说明:

#直接使用dstat,默认使用的是-cdngy参数,分别显示cpudisknetpagesystem信息

[root@dayi123 ~]# dstat

You did not select any stats, using -cdngy by default.

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--

usr  sys idl  wai  hiq siq|  read  writ| recv   send|  in    out |  int   csw

  1  1  99   0   0   0|  26k 4835B|   0     0 | 218B 1463B|   65    94

  0  1  99   0   0   0|   0     0 |3792B  886B|   0     0 |  63    69

  1  0  99   0   0   0|   0     0 |1158B  390B|   0     0 |  51    66

    hiq、siq分别为硬中断和软中断次数

    system:int、csw分别为系统的中断次数(interrupt)和上下文切换(context switch)

(4)常用的dstat的扩展功能(可通过查看/usr/share/dstat/查看):

    --tcp          #监控tcp连接状态

    --udp          #监控udp连接状态

    --socket       #显示网络统计数据

    --top-cpu      #显示最占用CPU的进程

    --top-io       #显示最占用io的进程

    --top-mem      #显示最占用内存的进程

    --top-latency  #显示延迟最大的进程

[root@dayi123 ~]# dstat --top-cpu  #显示最占cpu的进程

-most-expensive-

  cpu process  

vmtoolsd     0.2

kworker/0:1  1.0

xfsaild/sda3 1.0

三、进程管理

1、kill

(1)作用:向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以SIG开头(可省略),不区分大小写

(2)用法:kill [-SIGNAL] pid…

(3)显示当前系统可用的信号:kill –l 或trap –l

(4)常用的系统信号(或可通过命令man 7 signal查看):

   1) SIGHUP: 无须关闭进程而让其重读配置文件

   2) SIGINT: 中止正在运行的进程;相当于Ctrl+c

   3) SIGQUIT:相当于ctrl+\

   9) SIGKILL: 强制杀死正在运行的进程

   15) SIGTERM:终止正在运行的进程

   18) SIGCONT:继续运行

   19) SIGSTOP:后台休眠

(5)指定信号的方法:信号的数字标识、按信号的完整名称、按信号的简写名称

[root@dayi123 ~]# kill -1 96463 #重启进程

[root@dayi123 ~]# kill -9 `pidof httpd`    #杀死进程

[root@dayi123 ~]# pstree -p | grep httpd

2、killall命令的使用

(1)作用:安装进程名称管理进程:

(2)用法:killall[-SIGNAL] comm…

   选项:-i :交互式,询问是否要杀死某个进程

       -I :忽略进程名的大小写

[root@dayi123 ~]# systemctl start httpd.service  #由于在上次试验中杀死了httpd服务进程,在此处启动httpd

[root@dayi123 ~]# lsof -i :80    #查看进程是否启动

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

httpd   97552   root    4u  IPv6 844281      0t0  TCP *:http (LISTEN)

httpd   97569 apache    4u  IPv6 844281      0t0  TCP *:http (LISTEN)

…….

[root@dayi123 ~]# killall -2 httpd   #使用pkill加进程名杀死进程         

[root@dayi123 ~]# lsof -i :80 

3、pkill

(1)作用:按照进程名来杀死进程

(2)用法:pkill[options] pattern

  选项:-u uid: effective user,生效者

     -U uid: real user,真正发起运行命令者

     -t terminal: 与指定终端相关的进程

     -l: 显示进程名(pgrep可用)

     -a: 显示完整格式的进程名(pgrep可用)

     -P pid: 显示指定进程的子进程

[root@dayi123 ~]# pkill -t -9 pts/2    #强制杀死pts/2虚拟终端登录的进程

[root@dayi123 ~]# systemctl start httpd.service    #根据进程名杀死进程

[root@dayi123 ~]# pkill -9 httpd

四、作业管理

1、把进程放在后台执行

(1)在执行的命令后面加”&”

(2)在命令执行的时,按下“Ctrl+z”键,将执行的命令放入后台暂停

[root@dayi123 ~]# ping localhost >/dev/null &         #将命令放入后台执行

[1] 98704

[root@dayi123 ~]# dd if=/dev/zero of=/dev/null        #将正在执行的命令通过“ctrl+z”放入后台暂停

^Z

[2]+  Stopped                 dd if=/dev/zero of=/dev/null

2、查看后台的工作

(1)用法:jobs –l(显示工作的pid)

(2)说明:“+”代表最后一个放入后台的工作,也是工作恢复时,默认恢复的工作,“-”代表倒数第二个放入后台的工作

[root@dayi123 ~]# jobs

[1]-  Running                 ping localhost > /dev/null &

[2]+  Stopped                 dd if=/dev/zero of=/dev/null

3、作业的控制

(1)把后台的工作恢复到前台执行

    bg  %工作号(%号可以省略)

[root@dayi123 ~]# fg %2   #把后台的工作恢复到前台执行

dd if=/dev/zero of=/dev/null

(2)把后台暂停的工作恢复到后台执行

   bg %工作号

[root@dayi123 ~]# jobs

[1]-  Running                 ping localhost > /dev/null &

[2]+  Stopped                 dd if=/dev/zero of=/dev/null

[root@dayi123 ~]# bg %2     #把后台暂停的工作恢复到后台执行

[2]+ dd if=/dev/zero of=/dev/null &

[root@dayi123 ~]# jobs

[1]-  Running                 ping localhost > /dev/null &

[2]+  Running                 dd if=/dev/zero of=/dev/null &

(3)终止后台指定作业

   kill %工作号

[root@dayi123 ~]# jobs -l

[1]- 98704 Running                 ping localhost > /dev/null &

[2]+ 98880 Running                 dd if=/dev/zero of=/dev/null &

[root@dayi123 ~]# kill -9 %2     #杀死后台的作业

[root@dayi123 ~]# jobs

[1]-  Running                 ping localhost > /dev/null &

[2]+  Killed                  dd if=/dev/zero of=/dev/null

4、同时执行多个任务

(1)通过shell脚本

[root@dayi123 ~]#cat all.sh

vi all.sh

f1.sh&

f2.sh&

f3.sh&

(2)方法2:(f1.sh&);(f2.sh&);(f3.sh&)

(3)方法3:{ f1.sh& f2.sh& f3.sh& }

5、脱离执行的程序与终端的关系(在执行程序时,若关闭执行当前程序的终端,则此程序会终止执行)

(1)方法一:nohup COMMAND

(2)方法二:screen;COMMAND(系统最小化安装默认没有安装screen,需要安装)

在当前的终端下打开一个screen串口执行ping命令并中断当前窗口:

[root@dayi123 ~]# screen ping localhost   #打开一个screen窗口并执行ping命令

PING localhost (127.0.0.1) 56(84) bytes of data.

64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.057 ms

64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.123 ms

再另外的窗口中恢复ping命令:

[root@dayi123 ~]# screen –ls                   #查看screen会话

There are screens on:

        35093pxs-3.dayi123     (Detached)

2 Sockets in /var/run/screen/S-root.

[root@dayi123 ~]# screen -r 26320      #重新建立screen会话

64 bytes from localhost (127.0.0.1): icmp_seq=65 ttl=64 time=0.058 ms

64 bytes from localhost (127.0.0.1): icmp_seq=66 ttl=64 time=0.056 ms


本文出自 “dayi123” 博客,请务必保留此出处http://dayi123.blog.51cto.com/12064061/1923840

linux系统进程管理

标签:linux系统进程管理

原文地址:http://dayi123.blog.51cto.com/12064061/1923840

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!