<dfn id="7pnvb"><del id="7pnvb"><form id="7pnvb"></form></del></dfn>

      <form id="7pnvb"></form>

        <b id="7pnvb"><strike id="7pnvb"></strike></b>

          <form id="7pnvb"></form>
          現在的位置: 首頁 > 算法 > 正文

          Linux前后臺作業是什么? Linux前后臺作業有哪些常用命令

          2020年05月25日 算法 ⁄ 共 3299字 ⁄ 字號 評論關閉

            Linuxbashshell單一終端界面下,我們經常需要管理或同時完成多個作業,如一邊執行編譯,一邊實現數據備份,以及執行SQL查詢等其他的任務。所有的上述的這些工作我們可以在一個bash內實現,也就是說在同一個終端窗口完成。下面學步園小編來講解下Linux前后臺作業是什么?Linux前后臺作業有哪些常用命令?

            Linux前后臺作業是什么

            前后臺作業實際上對應的也就是前后臺進程,因此也就有對應的pid。在這里我們統稱為作業。

            無論是前臺作業還是后臺作業,兩者都來自當前的shell,是當前shell的子程序。

            下面是兩者的定義。

            前臺作業:可以由用戶參與交互及控制的作業我們稱之為前臺作業。

            后臺作業:在內存可以自運行的作業,用戶無法參與交互以及使用[ctrl]+c來終止,只能通過bg或fg來調用該作業。

            Linux前后臺作業有哪些常用命令

            a、command&直接讓作業進入后臺運行

            b、[ctrl]+z將當前作業切換到后臺

            c、jobs查看后臺作業狀態

            d、fg%n讓后臺運行的作業n切換到前臺來

            d、bg%n讓指定的作業n在后臺運行

            e、kill%n移除指定的作業n

            "n"為jobs命令查看到的job編號,不是進程id。

            每一個job會有一個對應的job編號,編號在當前的終端從1開始分配。

            job編號的使用樣式為[n],后面可能會跟有"+"號或者"-"號,或者什么也不跟。

            "+"號表示最近的一個job,"-"號表示倒數第二個被執行的Job。注,"+"號與"-"號會隨著作業的完成或添加而動態發生變化。

            通過jobs方式來管理作業,當前終端的作業在其他終端不可見。

            3、演示后臺作業命令

            a、直接將作業放入到后臺(附加&符號)

            robin@SZDB:/tmp>tar-czvftemp.tar.gztempSYBO2SZ.dbf&

            [1]12500

            robin@SZDB:/tmp>tempSYBO2SZ.dbf

            robin@SZDB:/tmp>#此時可進行其它操作,作業一旦完成,會彈出如下的提示

            [1]+Donetar-czvftemp.tar.gztempSYBO2SZ.dbf

            robin@SZDB:/tmp>ls-hltrtemp*

            -rwxr-xr-x1robinoinstall490M2013-05-0217:48tempSYBO2SZ.dbf

            -rw-r--r--1robinoinstall174M2013-05-0217:50temp.tar.gz

            b、已經開始執行,但需要放入后臺(使用[ctrl]+z)

            robin@SZDB:/tmp>tar-czvftemp2.tar.gztempSYBO2SZ.dbf

            tempSYBO2SZ.dbf

            [1]+Stoppedtar-czvftemp2.tar.gztempSYBO2SZ.dbf

            robin@SZDB:/tmp>jobs

            [1]+Stoppedtar-czvftemp2.tar.gztempSYBO2SZ.dbf

            #下面同時發布兩個作業,并且在中途按下[ctrl]+z以便將當前作業提交到后臺

            robin@SZDB:/tmp>find/u02-typef-size+100000k

            robin@SZDB:/tmp>find/-typef-size+100000k

            #再次查看當前的jobs時,jobs管理器里出現了3個處于stopp狀態的job

            robin@SZDB:/tmp>jobs

            [1]Stoppedtar-czvftemp2.tar.gztempSYBO2SZ.dbf

            [2]-Stoppedfind/-typef-size+100000k

            [3]+Stoppedfind/u02-typef-size+100000k

            robin@SZDB:/tmp>jobs-l#使用-l參數查看當前shell下所有的作業以及對應的jobnumber,進程pid

            [1]32682Stoppedtar-czvftemp2.tar.gztempSYBO2SZ.dbf

            [2]-32687Stoppedfind/u02-typef-size+100000k

            [3]+32707Stoppedfind/-typef-size+100000k

            #下面通過pid可以查看到對應的進程信息

            robin@SZDB:/tmp>ps-ef|grep32707|grep-vgrep

            robin3270732095009:48pts/100:00:00find/-typef-size+100000

            robin@SZDB:/tmp>tty#當前終端的信息為pts/1

            /dev/pts/1

            #打開另外一個終端

            robin@SZDB:~>tty

            /dev/pts/3

            robin@SZDB:~>jobs#此時可以看到jobs命令無任何返回

            robin@SZDB:~>ps-ef|grep32707|grep-vgrep#僅僅根據進程id可以找到對應的作業

            robin3270732095009:48pts/100:00:00find/-typef-size+100000

            #由上可知,對于當前shell下的jobs,僅當前shell(終端)可見

            c、將后臺作業切換到前臺(fg命令)

            robin@SZDB:/tmp>fg#省略Jobnumber的情形,則將缺省的job切換到前臺

            find/-typef-size+100000k

            /u02/database/old/CNMMBOBK/undo/undotbsCNMMBOBK.dbf

            ......

            [ctrl]+z

            robin@SZDB:/tmp>fg%1

            tar-czvftemp2.tar.gztempSYBO2SZ.dbf

            robin@SZDB:/tmp>jobs

            [2]-Stoppedfind/u02-typef-size+100000k

            [3]+Stoppedfind/-typef-size+100000k

            d、運行后臺中暫停的作業(bg命令)

            #前面有2個job處于stopped狀態,現在我們讓其在后臺運行,直接輸入bg命令則缺省的job繼續運行,否則輸入job編號,運行指定的job

            robin@SZDB:/tmp>bg2#輸入bg2之后,可以看到原來的命令后被追加了&

            [2]-find/u02-typef-size+100000k&

            robin@SZDB:/tmp>jobs

            [2]-Runningfind/u02-typef-size+100000k&

            [3]+Stoppedfind/-typef-size+100000k

            e、移除指定的作業n(kill)

            robin@SZDB:/tmp>jobs

            [3]+Stoppedfind/-typef-size+100000k

            robin@SZDB:/tmp>kill-9%3#強制終止job3,注意,此處的%不可省略

            robin@SZDB:/tmp>jobs

            [3]+Killedfind/-typef-size+100000k

            robin@SZDB:/tmp>jobs

            #kill-9表明強制終止指定的Job,-15則表明是正常終止指定的job。kill-l則列出kill能夠使用的所有信號

            #對于上述命令的詳細幫助,使用mancommand來獲取幫助信息

            f、帶參shell腳本的后臺處理

            #下面是一個測試用的shell腳本

            robin@SZDB:~/dba_scripts/custom/bin>moreecho_time.sh

            #!/bin/bash

            以上就是關于“Linux前后臺作業是什么?Linux前后臺作業有哪些常用命令”的內容,希望對大家有用。更多資訊請關注學步園。學步園,您學習IT技術的優質平臺!

          抱歉!評論已關閉.

          新婚之夜我被十几个男人一起_60歳の熟女セックス_肚兜下的浑圆被揉捏np_漂亮的小峓子4在钱免费

              <dfn id="7pnvb"><del id="7pnvb"><form id="7pnvb"></form></del></dfn>

              <form id="7pnvb"></form>

                <b id="7pnvb"><strike id="7pnvb"></strike></b>

                  <form id="7pnvb"></form>