Linux学习——进程管理

Linux学习——进程管理

5.1 初识进程

       进程(Process):是操作系统进行资源分配的最小单位。一个进程是一个程序的一次执行过程。每启动一个进程,操作系统就会为它分配一块独立的内存空间,用于存储PCB、数据段、程序段等资源。每个进程占有一块独立的内存空间。

       不同进程对系统资源的需求是不一样的。


       创建态: 进程正在被创建时,它的即态是“创建态”,在这个阶段操作系统会为进程分配资源、初始化PCB。

       就绪态: 当进程创建即成后,便进入“就绪态”,处于就绪态的进程已经具备运行条件,但由于没有空闲CPU,就暂时不能运行。

       运行态: 当CPU空闲时,操作系统就会选择一个就绪进程,让它上处理机运行。此时该进程就由就绪态变为运行态,CPU会执行该进程的指令序列。

       阻塞态: 在进程运行的过程中,当能会请求等待某个事件的发生(如等待某种系统资源的分配,或者等待其他进程的响应)。在这个事件发生之前,进程无法继续往下执行,此时操作系统会让这个进程下CPU,并让它进入“阻塞态”
当CPU空闲时,又会选择另一个“就绪态”进程上CPU运行

       终止态: 一个进程当以执行exit系统调用,请求操作系统终止该进程。此时该进程会进入“终止态”,操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收该进程的PCB。当终止进程的工作完成之后,这个进程就彻底消失了。

5.2 查看进程

5.2.1 静态查看进程

ps aux ”——查看静态进程,仅仅是捕捉某一瞬间某一进程的状态

[root@localhost test]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 193908  7112 ?        Ss   03:21   0:54 /usr/lib/syste
root          2  0.0  0.0      0     0 ?        S    03:21   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   03:21   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    03:21   0:02 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    03:21   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    03:21   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    03:21   1:00 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   03:21   0:00 [lru-add-drain

每列数据代表的意义:

列名 说明 列名 说明
USER 允许进程的用户 RSS 占用实际内存
PID 进程ID TTY 进程运行的终端
%CPU CPU占用率 STAT 进程状态
%MEM 内存占用率 TIME 进程累计占用CPU时间
VSZ 占用虚拟内存 COMMAND 进程发起者

注:TTY为“ ? ”时,表示不依赖任何终端运行;

STAT:“ R ”表示运行,“ S "表示可中断休眠,” D “表示不可中断休眠,” T ”表示停止的进程,“ Z ”表示僵死的进程,“ X ”表示死掉的进程。

ps aux --sort -%cpu "——进程按照CPU占用百分比的降序排列

[root@localhost test]# ps aux --sort -%cpu
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       2478  0.6  5.7 3791480 221072 ?      Sl   03:22   6:53 /usr/bin/gnome
root       1871  0.2  2.1 389664 83828 tty1     Ssl+ 03:21   3:00 /usr/bin/X :0 
root        440  0.1  0.0      0     0 ?        S    03:21   1:41 [xfsaild/dm-0]
root        791  0.1  0.1 295564  5296 ?        Ssl  03:21   2:01 /usr/bin/vmtoo
root       2751  0.1  0.6 608896 25996 ?        Sl   03:22   1:50 /usr/bin/vmtoo
root       2957  0.1  1.2 782956 49712 ?        Sl   03:22   1:24 /usr/lib

ps -ef ”——可以查看UID、PID、PPID等信息

UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 03:21 ?        00:00:55 /usr/lib/systemd/systemd --swi
root          2      0  0 03:21 ?        00:00:00 [kthreadd]
root          4      2  0 03:21 ?        00:00:00 [kworker/0:0H]
root          6      2  0 03:21 ?        00:00:02 [ksoftirqd/0]
root          7      2  0 03:21 ?        00:00:00 [migration/0]
root          8      2  0 03:21 ?        00:00:00 [rcu_bh]

ps axo ”——自定义显示字段

[root@localhost test]# ps axo pid,ppid,user,%cpu,command
   PID   PPID USER     %CPU COMMAND
     1      0 root      0.0 /usr/lib/systemd/systemd --switched-root --system --
     2      0 root      0.0 [kthreadd]
     4      2 root      0.0 [kworker/0:0H]
     6      2 root      0.0 [ksoftirqd/0]
     7      2 root      0.0 [migration/0]
     8      2 root      0.0 [rcu_bh]
     9      2 root      0.0 [rcu_sched]
    10      2 root      0.0 [lru-add-d

查看指定进程的PID:

[root@localhost test]# cat /run/sshd.pid
1263
[root@localhost test]# pidof sshd
1263
[root@localhost test]# pgrep sshd
1263

5.2.3 动态查看进程

top ”——实时动态地查看进程,上面为整体信息,下面为每个进程的信息,系统默认更新时间为3秒,可按回车键更新。

top - 21:09:08 up 17:47, 10 users,  load average: 0.08, 0.04, 0.05
Tasks: 371 total,   1 running, 360 sleeping,  10 stopped,   0 zombie
%Cpu(s):  0.3 us,  1.4 sy,  0.0 ni, 98.2 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  3861288 total,   473856 free,  1597112 used,  1790320 buff/cache
KiB Swap:  3145724 total,  3145724 free,        0 used.  1914284 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
  2478 root      20   0 3791480 221932  80320 S   6.6  5.7   7:01.66 gnome-she+ 
  1871 root      20   0  389664  83828  44224 S   6.3  2.2   3:05.00 X          
  2957 root      20   0  783388  50412  21136 S   3.3  1.3   1:26.62 gnome-ter+ 
     9 root      20   0       0      0      0 S   0.7  0.0   1:01.33 rcu_sched  
   791 root      20   0  295564   5296   4044 S   0.7  0.1   2:02.47 vmtoolsd   
   792 root      20   0   90568   3204   2340 S   0.7  0.1   0:23.62 rngd       
 50134 none      20   0 3708844 203712  71364 S   0.7  5.3   0:36.78 gnome-she+ 
  2448 root      20   0  233104   3952   3192 S   0.3  0.1   0:04.90 at-spi2-r+ 

上半部分是系统整体统计信息,具体解释如下:
top-21:09:08 :       当前时间。
up 17:47:       启动后运行时间。
10 users:        当前在线用户数。
load average:0.08,0.04,0.05:        CPU 最近1分钟、5分钟、15分钟平均负载值。Red Hat 官方手册解释说,假如系统有4个CPU,把每个时间段的平均负载值除以4, 所得到的数值为每个CPU的负载,如果该值大于1,表明CPU过载,
Tasks:371 total:        进程个数。
1 running:        正在使用CPU的进程个数。
360 sleeping:       进程休眠个数。
10 stopped:        进程停止个数。
0 zombie:        进程僵死个数。
%Cpu(s):0.3 us, 1.4s y, 0.0 ni,98.2 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0:        CUP 使用情况。
KiB Mem: 3861288 total, 473856 free, 1597112 used, 1790320 buff/cache:        内存使用情况。
KiB Swap: 3145724 total, 3145724 free, 0 used:        交换分区使用情况。

  • 下半部分,按M键以内存占用率排序

       PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
      2478 root      20   0 3791480 221256  80320 S   7.6  5.7   7:11.36 gnome-she+ 
     50134 none      20   0 3708844 203692  71364 S   0.0  5.3   0:37.49 gnome-she+ 
      1871 root      20   0  389664  83828  44224 S   3.6  2.2   3:10.92 X          
     50467 none      20   0 1452224  61364  22656 S   0.0  1.6   0:04.41 gnome-sof+ 
      2774 root      20   0 1446800  57056  22612 S   0.0  1.5   0:08.69 gnome-sof+ 
     49623 root      20   0  356268  51308  26732 S   0.0  1.3   0:04.71 X          
      2957 root      20   0  783388  50412  21136 S   1.7  1.3   1:29.73 gnome-ter+ 
    
    
  • P键以CPU占用率排序

      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
      2478 root      20   0 3791480 221300  80320 S   5.0  5.7   7:13.65 gnome-she+ 
      1871 root      20   0  389664  83828  44224 S   3.3  2.2   3:12.40 X          
      2957 root      20   0  783388  50412  21136 S   1.7  1.3   1:30.46 gnome-ter+ 
       792 root      20   0   90568   3204   2340 S   0.7  0.1   0:24.34 rngd       
         9 root      20   0       0      0      0 S   0.3  0.0   1:02.95 rcu_sched  
       440 root      20   0       0      0      0 S   0.3  0.0   1:44.12 xfsaild/d+ 
       791 root      20   0  295564   5296   4044 S   0.3  0.1   2:04.45 vmtoolsd   
      2448 root      20   0  233104   3952   3192 S  
    
  • N键以PID数值大小排序

       PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
     78591 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/1+ 
     78559 root      20   0  108052    360    284 S   0.0  0.0   0:00.00 sleep      
     78492 postfix   20   0   92296   4248   3160 S   0.0  0.1   0:00.00 pickup     
     78469 root      20   0       0      0      0 S   0.0  0.0   0:00.08 kworker/0+ 
     78465 root      20   0  162232   2516   159
    
  • R键对排序进行反转

         PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
         1 root      20   0  193908   7112   4208 S   0.7  0.2   0:56.36 systemd    
         2 root      20   0       0      0      0 S   0.0  0.0   0:00.23 kthreadd   
         4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0+ 
         6 root      20   0       0      0      0 S   0.0  0.0   0:02.64 ksoftirqd+ 
         7 root      rt   0       0      0      0 S   0.0  0.0   0:00.39 migration+ 
         8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh     
         9 root      20   0       0      0      0 S   0.7  0.0   1:02.68 rcu_sched  
        10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-d+ 
        11 root      rt   0       0      0      0 S   0.0  0.0   0:00.80 watchdog/0 
        
    
  • F键显示自定义显示字段。按上下键移动,按空格键选中,按q键退出自定义显示字段,按W键保存自定义显示字段

    * PID     = Process Id      PGRP    = Process Group   vMj     = Major Faults 
    * USER    = Effective Use   TTY     = Controlling T   vMn     = Minor Faults 
    * PR      = Priority        TPGID   = Tty Process G   USED    = Res+Swap Size
    * NI      = Nice Value      SID     = Session Id      nsIPC   = IPC namespace
    * VIRT    = Virtual Image   nTH     = Number of Thr   nsMNT   = MNT namespace
    * RES     = Resident Size   P       = Last Used Cpu   nsNET   = NET namespace
    * SHR     = Shared Memory   TIME    = CPU Time        nsPID   = PID namespace
    * S       = Process Statu   SWAP    = Swapped Size    nsUSER  = USER namespac
    * %CPU    = CPU Usage       CODE    = Code Size (Ki   nsUTS   = UTS namespace
    * %MEM    = Memory Usage    DATA    = Data+Stack (K
    * TIME+   = CPU Time, hun   nMaj    = Major Page Fa
    * COMMAND = Command Name/   nMin    = Minor Page Fa
      PPID    = Parent Proces   nDRT    = Dirty Pages C
      UID     = Effective Use   WCHAN   = Sleeping in F
      RUID    = Real User Id    Flags   = Task Flags <s
      RUSER   = Real User Nam   CGROUPS = Control Group
      SUID    = Saved User Id   SUPGIDS = Supp Groups I
      SUSER   = Saved User Na   SUPGRPS = Supp Groups N
      GID     = Group Id        TGID    = Thread Group 
      GROUP   = Group Name      ENVIRON = Environment v
    
    
  • 1键显示所有CPU的负载

    top - 21:34:46 up 18:13, 10 users,  load average: 0.16, 0.08, 0.06
    Tasks: 373 total,   1 running, 359 sleeping,  13 stopped,   0 zombie
    %Cpu0  :  0.3 us,  1.0 sy,  0.0 ni, 98.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu1  :  0.3 us,  1.0 sy,  0.0 ni, 98.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu2  :  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu3  :  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  3861288 total,   470632 free,  1600120 used,  1790536 buff/cache
    KiB Swap:  3145724 total,  3145724 free,        0 used.  1911280 avail Mem 
    

top -d ” ——设置刷新时间

top -p ”——可以指定查看一个或多个进程的动态信息

[root@localhost test]# top -d 1 -p 1
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
     1 root      20   0  193908   7112   4208 S   0.0  0.2   0:56.60 systemd    

-u “——可以查看指定用户的进程

-n “——可以设置刷新次数,完成后自动退出

[root@localhost test]# top -d 1 -u root -n 2

top - 21:38:40 up 18:17, 10 users,  load average: 0.06, 0.09, 0.06
Tasks: 375 total,   1 running, 358 sleeping,  16 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.7 sy,  0.0 ni, 98.8 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem :  3861288 total,   468172 free,  1602580 used,  1790536 buff/cache
KiB Swap:  3145724 total,  3145724 free,        0 used.  1908820 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
  2478 root      20   0 3791480 221312  80340 S   3.9  5.7   7:21.81 gnome-she+ 
  1871 root      20   0  389664  83828  44224 S   2.9  2.2   3:16.81 X          
   792 root      20   0   90568   3204   2340 S   2.0  0.1   0:24.66 rngd       
  2957 root      20   0  783388  50412  21136 S   2.0  1.3   1:32.69 gnome-ter+ 
 78914 root      20   0  162332   2532   1608 R   1.0  0.1   0:00.03 top        
     1 root      20   0  193908   7112   4208 S   0.0  0.2   0:56.65 systemd    
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.23 kthreadd   
     4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0+ 
     6 root      20   0       0      0      0 S   0.0  0.0   0:02.67 ksoftirqd+ 
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.39 migration+ 

5.3 信号控制进程

       在进程运行过程中,若由于某些原因需要终止进程,用户可以给予该进程一个信号(signal)进程接收到信号后,就会依照信号的要求做出相应的反应

5.3.1 kill命令

kill “——终止指定进程的运行

kill -l “——查看全部的信息

[root@localhost test]# kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX	

常见的信号:

信号编号 名称 特性及意义
1 SIGHUP 启动被终止的进程,重新加载,PID不会发生变化
9 SIGKILL 强制终止进程,使用此信号可能导致进程无法再次启动
15 SIGTERM 默认信号,以正常流程终止进程,允许进程释放资源。若进程已经出现问题,无响应,此信号将不再作用
18 SIGCONT 恢复进程
19 SIGSTOP 暂停进程

yum -y install vsftpd “ ——安装vsftpd服务

[root@localhost ~]#  yum -y install vsftpd 
[root@localhost ~]# systemctl start vsftpd //启动服务
[root@localhost ~]# systemctl stop vsftpd //停止服务

pidof “——查看vsftpd服务进程PID

[root@localhost ~]# pidof vsftpd
79699
[root@localhost ~]# kill 79699
[root@localhost ~]# pidof vsftpd

5.3.2 killall命令

killall “——终止某个指定名称的服务所对应的全部进程

[root@localhost ~]# pidof vsftpd
79946
[root@localhost ~]# killall vsftpd
[root@localhost ~]# pidof vsftpd
[root@localhost ~]# 

5.4 进程优先级

  进程优先级是一个数值,动态的优先级和静态的优先级决定了进程被CPU处理的顺序。一个拥有更高进程优先级的进程被 CPU处理的概率更高。
  每个CPU(或CPU核心)在一个时间点上只能处理一个进程,通过时间片技术, Linux系统能够运行的进程(和线程数)可以超出实际可用的 CPU 及其核心数量。Linux 内核进程调度程序将多个进程在CPU核心上快速切换,从而造成多个进程在同时运行的假象。
  由于不是每个进程都同样重要,可以让进程调度程序为不同的进程使用不同的调度策略。常规系统上运行的大多数进程所使用的调度策略为 SCHED_OTHER (也称为:但还有其他一些调度策略用于不同的目的。
  SCHED_OTHER 调度策略使用的进程的相对优先级称为进程的 nice 值,有40个不同级别,其范围为-20~19,数值越小优先级越高,数值越大优先级越低。例如,−20的优先级最高,该进程不倾向于让出CPU;19的优先级最低,该进程容易将CPU 让给其他进程。
  此处需要注意的是,普通用户调整应用程序优先权值的范围为0~19,只有超级用户有权使用更高的优先权值。

5.4.1 使用top命令查看nice级别

       NI列代表实际nice级别,PR列将nice级别映射到更大优先级队列,-20映射到0,+19映射到39

[root@localhost ~]# top

top - 22:00:34 up 18:39, 10 users,  load average: 0.02, 0.02, 0.05
Tasks: 375 total,   1 running, 358 sleeping,  16 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.9 sy,  0.0 ni, 98.7 id,  0.1 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  3861288 total,   466688 free,  1603760 used,  1790840 buff/cache
KiB Swap:  3145724 total,  3145724 free,        0 used.  1907636 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
  2478 root      20   0 3791480 223596  80344 S   5.9  5.8   7:29.53 gnome-she+ 
  1871 root      20   0  389664  83828  44224 S   3.3  2.2   3:20.68 X          
  2957 root      20   0  783388  50432  21144 S   1.7  1.3   1:34.46 gnome-ter+ 
   440 root      20   0       0      0      0 S   0.3  0.0   1:46.65 xfsaild/d+ 
   792 root      20   0   90568   3204   2340 S   0.3  0.1   0:25.04 rngd       
  2445 root      20   0   68392   2472   1864 S   0.3  0.1   0:00.43 dbus-daem+ 
 80303 root      20   0  162332   2524   1592 R   0.3  0.1   0:00.10 top        
     1 root      20   0  194040   7136   4208 S   0.0  0.2   0:57.57 systemd    
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.24 kthreadd   
     4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0+ 

5.4.2 使用ps命令查看nice级别

ps axo pid,command,nice,cls --sort=-nice

[root@localhost ~]# ps axo pid,command,nice,cls --sort=-nice
   PID COMMAND                      NI CLS
    47 [khugepaged]                 19  TS
   799 /usr/sbin/alsactl -s -n 19   19  TS
  2787 /usr/libexec/tracker-extrac  19  TS
  2802 /usr/libexec/tracker-miner-   - IDL
  2804 /usr/libexec/tracker-miner-  19  TS
  2818 /usr/libexec/tracker-miner-   - IDL
 50482 /usr/libexec/tracker-extrac  19  TS
 50490 /usr/libexec/tracker-miner-   - IDL
 50493 /usr/libexec/tracker-miner-  19  TS
 50497 /usr/libexec/tracker-miner-   - IDL
    46 [ksmd]                        5  TS

注:TS表示进程使用的调用策略为SCHED_OTHER

5.5 作业控制

       作业控制是一个命令行功能,允许—个 Shell 实例运行和管理多个命令。如果没有作业控制,父进程 fork()一个子进程后将休眠,直到子进程退出。使用作业控制可以选择性暂停、恢复以及异步运行命令,让 Shell 可以在子进程运行期间返回按受其他命令。

  • foreground: 前台进程是在终端中运行的命令,该终端为进程的控制终端。前台进程接收键盘产生的输入和信号,并允许从终端读取或写入到终端。

    例:在前台创建进程,可以利用ctrl +c组合键进行停止

[root@localhost ~]# sleep 800
^Z
[9]+  已停止               sleep 800
[root@localhost ~]# 

  • background: 后台进程没有控制终端,不需要终端的交互。

    例:在后台创建进程,使用ctrl+c组合键不能结束进程

[root@localhost ~]# sleep 800 &
[10] 80810
[root@localhost ~]# ^C
[root@localhost ~]# ps
   PID TTY          TIME CMD
 69779 pts/7    00:00:00 bash
 80303 pts/7    00:00:00 top
 80746 pts/7    00:00:00 sleep

jobs “——用于显示当前Shell中的作业列表及作业状态,包括后台运行的任务

[root@localhost ~]# jobs
[9]+  已停止               sleep 800
[10]   运行中               sleep 800 &

bg “——将任务移动到后台

[root@localhost ~]# bg 11
[11]+ sleep 700 &
[root@localhost ~]# jobs
[9]+  已停止               sleep 800
[10]   运行中               sleep 800 &
[11]   运行中               sleep 700 &

fg “——将后台进程移动到前台

[root@localhost ~]# fg 10
sleep 800
^C
[root@localhost ~]# 

kill % “——终止指定进程

[root@localhost ~]# jobs
[9]+  已停止               sleep 800
[11]   运行中               sleep 700 &
[root@localhost ~]# kill %11
[root@localhost ~]# jobs
[9]+  已停止               sleep 800
[11]   已终止               sleep 700

fg “ ——若不添加任何作业号,则默认调用最近的一个进程

[root@localhost ~]# sleep 1234 &
[10] 81325
[root@localhost ~]# sleep 4321 &
[11] 81332
[root@localhost ~]# jobs
[9]+  已停止               sleep 800
[10]   运行中               sleep 1234 &
[11]   运行中               sleep 4321 &
[root@localhost ~]# fg
sleep 800

5.6 实例:管理远程主机

yum -y install scream “——安装Screen

[root@localhost ~]# yum -y install scream

"screen -S "—— 打开另一个会话

[root@localhost ~]# screen -S linux
[root@localhost ~]# sleep 1000
^Z
[1]+  已停止               sleep 1000

screen -list “——查看当前会话

root@localhost ~]# screen -list
There is a screen on:
        81533.linux     (Attached)
1 Socket in /var/run/screen/S-root.

screen -r “——重新连接先前的进程,即恢复对话

[root@localhost ~]# screen -r 81533
[root@localhost ~]# sleep 1000

5.7 本章小结

       本章首先讲解了进程的概念、进程的状态,以及如何使用ps与top命令查看进程;接着讲解了用户可以通过给予进程信号的方式对进程进行控制;最后讲解了作用控制的基本原理

5.8 参考资料

进程概念(详解)

linux进程优先级(详解 )

posted @ 2023-11-25 22:41  林小满吼吼吼  阅读(80)  评论(0)    收藏  举报