jobs簡介

jobs簡介

    jobs可以顯示當前shell 環境中已啟動的作業狀態。

    用linux的時候經常會碰到類似這種情形,復制,下載一個很大的文件或編輯一個文件,任務占據著界面不能做其他操作,這個時候想不暫?;蛑兄谷蝿杖プ鰟e的操作就可以將正在執行的命令送往后臺去運行。


作業:作業號

    # jobs

作業控制命令:

    # fg [[%]JOBNUM] :將制定命令調回前臺

    # bg [[%]JOBNUM] :讓送往后臺的作業在后臺繼續運行

    # kill %JOBNUM :終止制定的作業

            fg,bg的時候:%可以省略

            kill %JOBNUM :%不可省略

       PS:"n"為jobs查看到的進程編號.

fg、bg、jobs、&、ctrl + z都是跟系統任務有關的,雖然現在基本上不怎么需要用到這些命令,但學會了也是很實用的

& :這個用在一個命令的最后,可以把這個命令放到后臺執行

ctrl + z:可以將一個正在前臺執行的命令放到后臺,并且暫停

jobs:查看當前有多少在后臺運行的命令

             如果 JobID 參數沒有指定特定作業,就顯示所有的活動的作業的狀態信息。如果報告了一個作業的終止,shell 從當前的 shell 環境已知的列表中刪除作業的進程標識。

fg:將后臺中的命令調至前臺繼續運行
            如果后臺中有多個命令,可以用 fg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的后臺正在執行的命令的序號(不是pid)


bg:將一個在后臺暫停的命令,變成繼續執行

    如果后臺中有多個命令,可以用bg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的后臺正在執行的命令的序號(不是pid)


細節,講解

概念:當前任務 

  如果后臺的任務號有2個,[1],[2];如果當第一個后臺任務順利執行完畢,第二個后臺任務還在執行中時,當前任務便會自動變成后臺任務號碼“[2]”的后臺任務。所以可以得出一點,即當前任務是會變動的。當用戶輸入“fg”、“bg”和“stop”等命令時,如果不加任何引號,則所變動的均是當前任務。

察看jobs 
  使用jobs或ps命令可以察看正在執行的jobs。 

  jobs命令執行的結果,+表示是一個當前的作業,減號表是是一個當前作業之后的一個作業,jobs -l選項可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated,但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的進程標識;也就是說,jobs命令顯示的是當前shell環境中所起的后臺正在運行或者被掛起的任務信息;

進程的掛起 

  后臺進程的掛起: 

  在solaris中通過stop命令執行,通過jobs命令查看job號(假設為num),然后執行stop %num;

  在redhat中,不存在stop命令,可通過執行命令kill -stop PID,將進程掛起;

  當要重新執行當前被掛起的任務時,通過bg %num 即可將掛起的job的狀態由stopped改為running,仍在后臺執行;當需要改為在前臺執行時,執行命令fg %num即可;

前臺進程的掛起:

  ctrl+Z;

進程的終止 

       后臺進程的終止:
          方法一:

              通過jobs命令查看job號(假設為num),然后執行kill %num

          方法二:

              通過ps命令查看job的進程號(PID,假設為pid),然后執行kill pid 

      前臺進程的終止:

          ctrl+c



擴展知識:

kill的其他作用 
  kill除了可以終止進程,還能給進程發送其它信號,使用kill -l 可以察看kill支持的信號。 

  SIGTERM是不帶參數時kill發送的信號,意思是要進程終止運行,但執行與否還得看進程是否支持。如果進程還沒有終止,可以使用kill -SIGKILL pid,這是由內核來終止進程,進程不能監聽這個信號。

關閉終端,此終端的后臺job繼續運行

    按照上面的方法在當前終端運行的命令將他們調到后臺去后,如果關閉了終端這些后臺的jobs都會關閉。假如我們登陸到服務器下載一個東西,下載的很慢,下班時間到了,總不能不關掉電腦回家吧,這個時候介紹一個新命令

    nohup,

    nohup /root/start.sh & 

    在shell中回車后提示:

    [~]$ appending output to nohup.out

   原程序的的標準輸出被自動改向到當前目錄下的nohup.out文件,起到了log的作用。

    關于nohup的詳細使用,可以查看我以后的博客。

原創文章,作者:瓶云,如若轉載,請注明出處:http://www.www58058.com/4707

(0)
瓶云瓶云
上一篇 2015-05-23 22:21
下一篇 2015-05-25 20:52

相關推薦

  • M20 – 1- 第三周博客(1):Linux用戶、組

    Linux是個多用戶多任務的分時操作系統,因此要使用系統資源的用戶都必須先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統。用戶的賬號一方面能幫助系統管理員對使用系統的用戶進行跟蹤,并控制他們對系統資源的訪問與限制,并為用戶提供安全性保護。每個用戶賬號都擁有一個惟一的用戶名(UID)和用戶口令(PASSWD)。用戶在登錄時鍵入正確的用戶名和口令后,才能…

    Linux干貨 2016-08-04
  • 常見RAID級別原理, Linux中軟RAID實現方式詳解

    RAID簡介     RAID(Redundant Arry of Independent Disks)獨立冗余陣列,舊稱(Redundant Arry of Inexpensive Disks)廉價冗余陣列,其主要目的是將多個硬盤組成在一起來達到提高I/O、讀寫、冗余性。 RAID分為硬件RAID和軟件RAID &n…

    Linux干貨 2016-03-09
  • N21-第五周

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; # grep "^[[:space:]]\+" /etc/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; # grep&nbs…

    Linux干貨 2016-08-15
  • 第十一周作業

    第十一周作業 1、詳細描述一次加密通訊的過程,結合圖示最佳 第一階段:ClientHello: 支持的協議版本,比如tls 1.2; 客戶端生成一個隨機數,稍后用戶生成“會話密鑰” 支持的加密算法,比如AES、3DES、RSA; 支持的壓縮算法; 第二階段:ServerHello 確認使用的加密通信協議版本,比如tls 1.2; 服務器端生成一個隨機數,稍后…

    2017-10-29
  • 第四周

    博客具體內容請移步博客園:http://www.cnblogs.com/ITOps/p/6227780.html

    Linux干貨 2016-12-27
  • openssl基礎應用

    參考http://www.www58058.com/2704 http://www.williamlong.info/archives/837.html 一、前言 什么是openssl?講openssl之前我們先了解下什么是ssl?ssl是secure socket layer的簡稱,其使用對稱加密解密,非對稱加密解密(公鑰加密解密),單向加密解密結合證書實…

    Linux干貨 2015-09-27
欧美性久久久久