自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux下幾種運(yùn)行后臺(tái)任務(wù)的方法

系統(tǒng) Linux
今天就給大家介紹linux中幾種后臺(tái)任務(wù)的執(zhí)行方法避免上述問(wèn)題。

 1.問(wèn)題的引入

程序員最不能容忍的是在使用終端的時(shí)候往往因?yàn)榫W(wǎng)絡(luò),關(guān)閉屏幕,執(zhí)行CTRL+C等原因造成ssh斷開(kāi)造成正在運(yùn)行程序退出,使得我們的工作功虧一簣。

其背后的主要原因在于上述的相關(guān)操作,shell默認(rèn)會(huì)發(fā)送中斷信號(hào)給該終端session關(guān)聯(lián)的進(jìn)程,從而導(dǎo)致進(jìn)程跟隨終端退出,為了弄清這個(gè)問(wèn)題我們首先要了解兩種中斷信號(hào):

1)sigint:signal interrupt,ctrl+c會(huì)發(fā)送此信號(hào),主動(dòng)關(guān)閉程序

2)sighup: signal hang up,關(guān)閉終端,網(wǎng)絡(luò)斷線,關(guān)閉屏幕會(huì)發(fā)送此掛斷信號(hào)。

今天就給大家介紹linux中幾種后臺(tái)任務(wù)的執(zhí)行方法避免上述問(wèn)題。

2 & 符號(hào)

這是一種把 &放在執(zhí)行命令最后,使啟動(dòng)的程序忽略sigint信號(hào),此時(shí)執(zhí)行ctrl+c關(guān)閉就不會(huì)關(guān)閉此進(jìn)程,但是當(dāng)屏幕關(guān)閉,斷網(wǎng)仍然會(huì)造成進(jìn)程退出。 

  1. sh test.sh & 

3.nohup指令

nohup(no hang up),意思就是不掛斷運(yùn)行,用nohup運(yùn)行命令可以使命令永久執(zhí)行下去,和用戶終端沒(méi)有關(guān)系,斷開(kāi)SSH不影響運(yùn)行,nohup捕獲了SIGHUP,并做了忽略處理,因此當(dāng)屏幕關(guān)閉,斷網(wǎng)等造成ssh中斷時(shí)進(jìn)程不會(huì)退出。但是ctrl+c可以關(guān)閉關(guān)閉該進(jìn)程。因此大多數(shù)情況同時(shí)使用nohup和&啟動(dòng)的程序,ctrl+c和關(guān)閉終端都無(wú)法關(guān)閉。在缺省情況下所有輸出都被重定向到一個(gè)名為nohup.out的文件中。

nohup指令基本使用格式: 

  1. nohup Command [ Arg ... ] [ & ] 

舉例

后臺(tái)不中斷執(zhí)行./test.sh,stdout輸出給out.log,stderr輸出給err.log 

  1. nohup ./test.sh > out.log 2>err.log  & 

相關(guān)的數(shù)字含義如下:

    0 – stdin (standard input),

    1 – stdout (standard output),顯然 nohup command > out.log 等價(jià)于 nohup command 1> out.log,是缺省行為。

    2 – stderr (standard error)

可能你也會(huì)見(jiàn)到這種寫(xiě)法,其含義是把stderr也重定向給stdin 

  1. nohup ./test.sh > out.log 2>&1  & 

4.ctrl + z、jobs、fg、bg

如果我們程序在啟動(dòng)的時(shí)候并沒(méi)有使用&,nohup怎么辦呢,難道我們需要先執(zhí)行ctrl + c將在前臺(tái)執(zhí)行的進(jìn)程終止執(zhí)行再重新啟動(dòng)嗎,顯然有好的方法!

4.1 ctrl + z

將一個(gè)正在前臺(tái)執(zhí)行的作業(yè)進(jìn)程放到后臺(tái),并且暫停,用術(shù)語(yǔ)講就是掛起,執(zhí)行后如下: 

  1. [1]+ Stopped ./test.sh 

4.2 jobs

查看當(dāng)前有多少在后臺(tái)運(yùn)行的命令,[jobnumber] 就是作業(yè)號(hào)。 

  1. jobs  
  2. [1]+ Stopped ./test.sh   
  3. [2]+ Running ./test2.sh & 

4.4 bg

將后臺(tái)中暫停(掛起)的作業(yè)進(jìn)程繼續(xù)運(yùn)行,例如把1號(hào)作業(yè)(./test.sh) 放到后臺(tái)運(yùn)行,注意看已經(jīng)帶了& 

  1. bg 1  
  2. [1]+ ./test.sh  & 

4.3fg

將后臺(tái)中的作業(yè)進(jìn)程調(diào)至前臺(tái)繼續(xù)運(yùn)行,例如把2號(hào)作業(yè)(./test2.sh &)調(diào)至前臺(tái)運(yùn)行 

  1. fg 2   
  2. ./test2.sh 

5.screen命令

5.1 介紹

如果說(shuō)上面的方法是通過(guò)linux 相關(guān)本身命令實(shí)現(xiàn)了前后臺(tái)任務(wù)調(diào)度,那么screen就提供了另外一種思路。

不說(shuō)人話的版本:GNU Screen是一款由GNU計(jì)劃開(kāi)發(fā)的用于命令行終端切換的自由軟件。用戶可以通過(guò)該軟件同時(shí)連接多個(gè)本地或遠(yuǎn)程的命令行會(huì)話,并在其間自由切換。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了統(tǒng)一的管理多個(gè)會(huì)話的界面和相應(yīng)的功能。

說(shuō)人話的版本: 我們可以粗略地認(rèn)為screen是一個(gè)虛擬終端軟件,直接在linux系統(tǒng)里面啟動(dòng)了另外一個(gè)后臺(tái)程序接管(維持)了你的終端會(huì)話,當(dāng)你直接連接的終端ssh斷開(kāi)時(shí)他仍然讓程序認(rèn)為你的ssh持續(xù)鏈接著,這樣也就不會(huì)出現(xiàn)進(jìn)程接收到中斷信號(hào)而退出。

5.2 安裝 

  1. yum install screen 

5.3使用

1)新建會(huì)話

screen -S yourname -> 新建一個(gè)叫yourname的session

2) 列出當(dāng)前所有的session

screen -ls

3)恢復(fù)會(huì)話(回到y(tǒng)ourname這個(gè)session)

screen -r yourname

4) detach某個(gè)session

screen -d yourname -> 遠(yuǎn)程detach某個(gè)session screen -d -r yourname -> 結(jié)束當(dāng)前session并回到y(tǒng)ourname這個(gè)session

5)刪除會(huì)話

screen -S pid-X quit 

 

責(zé)任編輯:龐桂玉 來(lái)源: 良許Linux
相關(guān)推薦

2009-06-19 20:38:49

Linux操作系統(tǒng)

2018-09-12 21:25:15

iOSAppcrash

2023-11-25 09:30:13

Android后臺(tái)任務(wù)

2023-11-27 19:32:25

Android

2023-04-26 11:59:06

Swift異步編程

2014-07-31 12:07:15

Linux

2017-03-15 19:54:05

Linux進(jìn)程后臺(tái)

2021-10-13 07:30:13

AndroidAlarmManageWorkManager

2023-12-01 08:21:51

開(kāi)發(fā)者Android組件庫(kù)

2020-08-25 08:53:02

Linux端口轉(zhuǎn)發(fā)

2010-03-08 18:18:38

Linux后臺(tái)運(yùn)行命令

2010-03-09 08:54:29

Linux后臺(tái)運(yùn)行命令

2010-03-09 09:40:02

Linux后臺(tái)運(yùn)行命令

2010-03-08 18:07:02

Linux后臺(tái)運(yùn)行命令

2010-03-08 17:53:36

Linux后臺(tái)運(yùn)行命令

2009-04-24 10:57:25

2021-06-10 09:56:09

Linux命令shell

2020-09-14 08:23:56

日期時(shí)間Shell

2011-03-21 11:14:24

LinuxNagios

2012-09-03 09:53:03

Linux操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)