在linux上執(zhí)行腳本,當退出頁面或電腦鎖屏后,腳本就停止執(zhí)行了。對需要長時間運行的腳本非常不友好。

在畢節(jié)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計制作按需制作網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷,成都外貿(mào)網(wǎng)站制作,畢節(jié)網(wǎng)站建設(shè)費用合理。
nohup(no hang up):可以讓程序不掛斷執(zhí)行。
:可以讓程序在后臺執(zhí)行。
“ nohup.log”: 表示將日志輸出到nohup.log文件上。
21:表示將正確日志、錯誤日志都輸出到正確日志指定的文件(nohup.log文件)上。
在命令后面加上可實現(xiàn)后臺運行。使用示例:
但僅使用命令,當關(guān)閉控制臺終端時,任務(wù)同樣會被終止。
nohup(no hang up)命令,即忽略SIGHUP信號。nohup能保證關(guān)閉控制臺終端時,任務(wù)不被終止:
關(guān)閉控制臺終端后,通過ps查看,easeapi.sh 的父進程由終端進程變成了init進程,即使關(guān)閉終端,任務(wù)依然能保持運行。nohup命令默認會在當前目錄創(chuàng)建nohup.out文件存儲輸出信息。如果要輸出到指定文件則:
nohup命令雖然簡單,但在一些情況下可能并不好用。比如,想使用scp命令從需要驗證的服務(wù)端下載文件時,直接使用nohup命令并不會出現(xiàn)驗證交互。這種情況下,推薦使用bg/fg命令。
Ctrl + C 和 Ctrl + Z是linux中兩種中斷命令,但作用有不同。Ctrl + C是強制中斷進程,而Ctrl + Z則是暫停任務(wù)執(zhí)行。在終端中正常執(zhí)行scp命令,輸入賬戶密碼后,使用Ctrl + Z暫停任務(wù)。
jobs命令顯示當前任務(wù)狀態(tài)。
可以看到任務(wù)已經(jīng)暫停,任務(wù)編號為1。
bg/fg將可將任務(wù)在前后臺切換。現(xiàn)在將任務(wù)切換到后臺:
在通過jobs查看,任務(wù)狀態(tài)已變成了running:
當關(guān)閉終端后,任務(wù)可能會被終止。可使用disown命令忽略SIGHUP信號。
當我們在終端或控制臺工作時,可能不希望由于運行一個作業(yè)而占住了屏幕,因為可能還有更重要的事情要做,比如閱讀電子郵件。對于密集訪問磁盤的進程,我們更希望它能夠在每天的非負荷高峰時間段運行(例如凌晨)。為了使這些進程能夠在后臺運行,也就是說不在終端屏幕上運行,有幾種選擇方法可供使用。
:當在前臺運行某個作業(yè)時,終端被該作業(yè)占據(jù);可以在命令后面加上 實現(xiàn)后臺運行。例如:sh test.sh
適合在后臺運行的命令有f i n d、費時的排序及一些s h e l l腳本。在后臺運行作業(yè)時要當心:需要用戶交互的命令不要放在后臺執(zhí)行,因為這樣你的機器就會在那里傻等。不過,作業(yè)在后臺運行一樣會將結(jié)果輸出到屏幕上,干擾你的工作。如果放在后臺運行的作業(yè)會產(chǎn)生大量的輸出,最好使用下面的方法把它的輸出重定向到某個文件中:
這樣,所有的標準輸出和錯誤輸出都將被重定向到一個叫做out.file 的文件中。
PS:當你成功地提交進程以后,就會顯示出一個進程號,可以用它來監(jiān)控該進程,或殺死它。(ps -ef | grep 進程號 或者 kill -9 進程號)
nohup:使用命令后,作業(yè)被提交到后臺運行,當前控制臺沒有被占用,但是一但把當前控制臺關(guān)掉(退出帳戶時),作業(yè)就會停止運行。nohup命令可以在你退出帳戶之后繼續(xù)運行相應(yīng)的進程。nohup就是不掛起的意思( no hang up)。該命令的一般形式為:
如果使用nohup命令提交作業(yè),那么在缺省情況下該作業(yè)的所有輸出都被重定向到一個名為nohup.out的文件中,除非另外指定了輸出文件:
使用了nohup之后,很多人就這樣不管了,其實這樣有可能在當前賬戶非正常退出或者結(jié)束的時候,命令還是自己結(jié)束了。所以在使用nohup命令后臺運行命令之后,需要使用exit正常退出當前賬戶,這樣才能保證命令一直在后臺運行。
ctrl + z :可以將一個正在前臺執(zhí)行的命令放到后臺,并且處于暫停狀態(tài)。
Ctrl+c :終止前臺命令。
jobs: 查看當前有多少在后臺運行的命令。 jobs -l選項可顯示所有任務(wù)的PID,jobs的狀態(tài)可以是running, stopped, Terminated。但是如果任務(wù)被終止了(kill),shell 從當前的shell環(huán)境已知的列表中刪除任務(wù)的進程標識。
21解析:
擴展鏈接:如何寫高效的代碼,和代碼優(yōu)化方法
linux查看文件內(nèi)容最常用的5 個命令:
命令一:cat
cat命令應(yīng)該是在Linux中查看文件內(nèi)容最常見的命令了。
使用cat命令會打印指定文件的所有內(nèi)容到標準輸出上,比如你的屏幕。
cat命令最簡單的用法,是直接在cat命令后面跟上文件即可。
命令二:nl
nl命令跟cat命令很相識,它的不同之處在于每一行的前面多了行號的顯示。
命令三:less
less命令一次只會顯示一個頁面的文件內(nèi)容。
可以通過?j、k?兩個按鍵進行上、下瀏覽文件內(nèi)容,使用?q?可以隨時退出。
命令四:tail
tail?命令用于查看文件內(nèi)容的最后一部分,默認顯示的行數(shù)是10行。
當然,如果你想讓?tail?命令顯示更多的文件內(nèi)容,可以使用?-n number?這個參數(shù),number?代表行數(shù)。
命令五:head
head?命令跟tail很相識,只不過它們查看的文件內(nèi)容的方向是相反的。
head?命令用于查看文件內(nèi)容的前面部分,默認顯示的行數(shù)也是10行。
當然,如果想顯示更多的行數(shù)的話,也是可以使用?-n number?這個參數(shù),number?代表行數(shù)。
一、會話和作業(yè)的概念:
1、進程:Linux自身運行的獨立程序。
2、進程組:進程組是一個或多個進程的集合。
_____________________________________________________
Linux包括三種不同類型的進程,每種進程都有自己的特點和屬性:
3、交互進程 —— 由一個shell啟動的進程。交互進程既可以在前臺運行,也可以在后臺運行。?
4、批處理進程 —— 這種進程和終端沒有聯(lián)系,是一個進程序列。?
5、監(jiān)控進程(也稱守護進程)—— linux系統(tǒng)啟動時啟動的進程,并在后臺運行。
_______________________________________________________________
6、會話:一個用戶登錄終端后會新建一個會話,它是和控制終端產(chǎn)生IO交互的過程。這個過程可以稱之為會話期。會話期可以產(chǎn)生一個 或 多個進程組的集合。(比喻打電話,首先要電話的接通,接通了才可以產(chǎn)生人與人之間的信息交互。在此會話期間可以產(chǎn)生一個或多個不同范疇的話題)
7、作業(yè):作業(yè)類似于用戶提交給系統(tǒng)的一個任務(wù)。一個作業(yè)可以包含一個或多個進程共同完成一個任務(wù)。(比喻會議上BOSS需要完成一個任務(wù),根據(jù)需求可以分配到一個或多個人配合完成。)
8、作業(yè)控制:指的是控制正在運行的進程的行為。比如,用戶可以掛起一個進程,等一會兒再繼續(xù)執(zhí)行該進程。這樣用戶就能在多個獨立作業(yè)間進行切換。(比喻正在進行常規(guī)工作的員工,經(jīng)理突發(fā)一個事情需要協(xié)助處理。這位員工放下手上的工作(掛起)。首先處理經(jīng)理安排的事情,完事后再處理常規(guī)工作的事情。)
二、通過 date 和 sleep 命令理解前臺、后臺作業(yè)。date 命令是顯示系統(tǒng)時間,sleep 命令是設(shè)置延時。
1、前臺執(zhí)行命令:
1)、前臺執(zhí)行命令。輸入輸出都是按部就班,執(zhí)行完一個命令再執(zhí)行下一個命令,把結(jié)果打印出來。
紅色下劃線:date 查看當前日期時間。
黃色下劃線:sleep 10 延時10秒。
藍色下劃線:date 查看當前日期時間。
通過結(jié)果可以看出第一個 date 打印出日期時間后,延時10再執(zhí)行一個 date 打印日期時間。兩個時間相隔 10 秒。
2)、系統(tǒng)正在執(zhí)行前臺的命令時,再輸入命令是不會馬上執(zhí)行。要執(zhí)行完畢前面的命令才可以執(zhí)行后面輸入的命令。同樣用 date 和 sleep做實驗:
紅色下劃線:date 輸出當前日期時間。
黃色下劃線:sleep 60 系統(tǒng)執(zhí)行延時 60 秒的操作。 [root@localhost ~]#?用戶標識符沒有出現(xiàn)。雖然光標可以進行輸入,但輸入的? ? ls /tmp/ 命令并沒有馬上執(zhí)行,沒有輸出。因為此時,前臺正在執(zhí)行 sleep 60 延時60秒的指令。
紅色下劃線:等待 sleep 60 執(zhí)行完畢后,再執(zhí)行一個 date 輸出當前日期時間。兩個 date 之間時間相隔 60 秒。
黃色下劃線:待整條?date ; sleep 60 ; date 命令都執(zhí)行完畢后,再執(zhí)行剛才延時 60 秒時輸入的?ls /tmp/ 命令,輸出結(jié)果。
藍色下劃線:[root@localhost ~]# 用戶標識符出現(xiàn)才算前臺命令執(zhí)行完畢,可以繼續(xù)正常操作。
2、后臺執(zhí)行命令:
:命令后面使用 符號,可以讓命令在后臺執(zhí)行。
jobs:可以查看正在后臺運行的作業(yè)。
jobs選項:-l —— 除了列出作業(yè)號外,同時列出 PID。
? ? ? ? ? ? ?-r —— 列出僅僅在后臺運行的作業(yè)。
? ? ? ? ? ? ?-s —— 列出僅僅再后臺暫停的作業(yè)。
1)、后臺運行的命令進程不會影響到前臺命令進程。
紅色下劃線:sleep 30 —— 把 sleep? 30 丟到后臺運行。
黃色下劃線:通過 jobs 命令跟蹤進程情況。(Runing —— 正在運行,Done —— 完成)
綠色下劃線:sleep 后臺運行期間進行了 ls 和 tail 命令的查詢輸出,正常運作。
藍色下劃線:jobs 沒有輸出,代表 sleep 已經(jīng)完結(jié),沒有后臺進程。
2)、掛起 和 中斷后臺運行的命令。
Ctrl+c:中斷后臺進程。Ctrl+z:掛起后臺進程。
jobs 命令可以查看到掛起的命令,不可以查看中斷的命令。
3)、jobs選項:-l —— 除了列出作業(yè)號外,同時列出 PID。
紅色下劃線:sleep 100 ,后臺運行延時100秒的程序。
黃色下劃線:jobs -l 列出所有后臺進程(-l —— 含作業(yè)號、PID、運行狀態(tài) 和 執(zhí)行的命令。)??
運行狀態(tài)有 Running 、Stopped?和 Done,后臺正在運行會顯示 Running,當運行完畢后用 jobs 查看會顯示 Done,并且命令后面的 符號也會消失。Done只出現(xiàn)一次,下次再用 jobs 查看后臺程序就沒有了系統(tǒng)曾提示過 Done 的命令。掛起正在運行的命令,后臺會顯示 Stopped 暫停狀態(tài)。
-r —— 列出僅僅在后臺運行的作業(yè)。
-s —— 列出僅僅再后臺暫停的作業(yè)。
分享名稱:關(guān)于linux后臺查看命令的信息
網(wǎng)頁路徑:http://chinadenli.net/article46/dsehgeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站設(shè)計公司、網(wǎng)站策劃、關(guān)鍵詞優(yōu)化、動態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)