<i id='gegz0'></i>

    1. <dl id='gegz0'></dl>
      <acronym id='gegz0'><em id='gegz0'></em><td id='gegz0'><div id='gegz0'></div></td></acronym><address id='gegz0'><big id='gegz0'><big id='gegz0'></big><legend id='gegz0'></legend></big></address><i id='gegz0'><div id='gegz0'><ins id='gegz0'></ins></div></i>
      1. <tr id='gegz0'><strong id='gegz0'></strong><small id='gegz0'></small><button id='gegz0'></button><li id='gegz0'><noscript id='gegz0'><big id='gegz0'></big><dt id='gegz0'></dt></noscript></li></tr><ol id='gegz0'><table id='gegz0'><blockquote id='gegz0'><tbody id='gegz0'></tbody></blockquote></table></ol><u id='gegz0'></u><kbd id='gegz0'><kbd id='gegz0'></kbd></kbd>
        <ins id='gegz0'></ins><span id='gegz0'></span>

          <fieldset id='gegz0'></fieldset>

            <code id='gegz0'><strong id='gegz0'></strong></code>

            深入了解Linux进程与作业

            • 时间:
            • 浏览:3
            • 来源:124软件资讯网

              在Linux系统上运行的所有工具都可以称之为一个历程 。例如  ,一个简朴的helloworld法式 ,在终端上输入ls下令等等 。

                一个正常运行的历程称之为作业  ,一个作业可以启动多个历程 ,例如作业ls -lrt | grep *.txt就启动了两个历程 。

                历程和作业相关的下令主要有:kill、disown、wait、fg、bg、jobs

                fg、bg、jobs只接受作业号为参数  。

                kill、disown、wait即可接受作业号为参数 ,又可接受历程号为参数  。

                jobs 下令显示了当前 shell 情况中已启动的作业状态 。

                kill下令可以用来终止一个历程

                [alex@cgdp alex]$ sleep 100&

                [1] 6273

                [alex@cgdp alex]$ ps

                PID TTY TIME CMD

                6230 pts/0 00:00:00 bash

                6273 pts/0 00:00:00 sleep (待删除的历程)

                6274 pts/0 00:00:00 ps

                [alex@cgdp alex]$ kill -9 6273

                [alex@cgdp alex]$ ps

                PID TTY TIME CMD

                6230 pts/0 00:00:00 bash

                6275 pts/0 00:00:00 ps

                [1]+ Killed sleep 100 (历程已被删除)

                disown下令可以用来删除作业

                [alex@cgdp alex]$ ls -l | sleep 200&

                [1] 6326

                [alex@cgdp alex]$ jobs

                [1]+ Running ls --color=tty -l | sleep 200 &

                [alex@cgdp alex]$ disown %1

                [alex@cgdp alex]$ jobs

                [alex@cgdp alex]$

                fg下令把后台运行的作业放到前台运行  ,bg重启一个挂起的作业  。

                可以用 CTRL+z 将当前历程挂起到后台暂停运行  ,执行一些此外操作  ,然后再用 fg 来将挂起的历程重新放回前台(也

                可用 bg 来将挂起的历程放在后台)继续运行  。

                wait下令制止剧本的运行,直到后台运行的所有作业都竣事为止,或者直到指定作业号或历程号为选项的作业竣事为止.可

                以使用wait 下令来防止在后台作业没完成(这会发生一个孤儿历程)之前退出剧本.

                例如:

                写一个简朴的剧本test

                #!/bin/sh

                ls -l&

                echo "done"

                运行:

                [alex@cgdp shell]$ ./test

                done

                [alex@cgdp shell]$ total 4

                -rwxrwxr-x 1 alex alex 30 May 5 21:15 test

                使用wait下令重写剧本test

                #!/bin/sh

                ls -l&

                wait

                echo "done"

                运行:

                [alex@cgdp shell]$ ./test

                total 4

                -rwxrwxr-x 1 alex alex 35 May 5 21:19 test

                done