Linux-把任務放到後臺

轉載 https://blog.csdn.net/u014540717/article/details/53079111
公司用的服務器,只能ssh遠程操做,天天都會自動退出帳戶,不知道怎麼回事兒,很鬱悶。因此天天早起從新登陸後發現進程已經關閉了,由於你運行的任務是和terminal關聯在一塊兒的,terminal關閉後,你運行的任務天然就關閉了。爲了不此事件發生,須要把任務放到後臺運行,方法以下:python

1.nohup命令
nohup command &
1
若是使用了nohup命令,在缺省狀況下,該做業的全部輸出都被重定向到一個名爲nohup.out的文件中,除非另外指定了輸出文件:linux

nohup command>myout.file 2>&1 &
1
這樣command的全部輸出就被定向到了myout.fileshell

2.ps命令
ps命令用於查看系統上運行的進程,例如bash

PID TTY TIME CMD
7016 pts/1 00:00:00 bash
10913 pts/1 00:07:43 python
11006 pts/1 00:00:00 ps
1
2
3
4
能夠知道,我運行的程序PID是10913,默認指令$ps 是和終端綁定在一塊兒的,也就是說$ps 指令只顯示有控制終端的進程,要想顯示沒有控制終端的進程,可使用如下命令:服務器

$ ps -x
1
ps的其餘參數請自行man,或者查看該篇帖子10個重要的Linux ps命令實戰
若是想實時觀測CPU運行狀態,可使用$top 指令,具體參考天天一個linux命令(44):top命令ssh

3.kill命令
輸入以下命令便可殺死進程.net

kill 10913
1
有時候可能會遇到這樣的狀況,某個進程已經掛死或閒置,使用kill命令卻殺不掉。這時候就必須發送信號9,強行關閉此進程。固然這種「野蠻」的方法極可能會致使打開的文件出現錯誤或者數據丟失之類的錯誤。因此不到萬不得已不要使用強制結束的辦法。若是連信號9都不響應,那恐怕就只有從新啓動計算機了。blog

**進程

4.補充幾個相關指令:
**
引用自
fg、bg、jobs、&、nohup、ctrl + z命令事件

&
1
加在一個命令的最後,能夠把這個命令放到後臺執行,如gftp &,

ctrl + z
1
能夠將一個正在前臺執行的命令放到後臺,而且處於暫停狀態,不

jobs
1
前有多少在後臺運行的命令
jobs -l選項可顯示全部任務的PID,jobs的狀態能夠是running, stopped, Terminated,可是若是任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的進程標識;也就是說,jobs命令顯示的是當前shell環境中所起的後臺正在運行或者被掛起的任務信息;

fg
1
將後臺中的命令調至前臺繼續運行
若是後臺中有多個命令,能夠用fg %jobnumber將選中的命令調出,%jobnumber是經過jobs命令查到的後臺正在執行的命令的序號(不是pid)

bg
1
將一個在後臺暫停的命令,變成繼續執行 (在後臺執行)
若是後臺中有多個命令,能夠用bg %jobnumber將選中的命令調出,%jobnumber是經過jobs命令查到的後臺正在執行的命令的序號(不是pid)

將任務轉移到後臺運行:
先ctrl + z;再bg %jobnumber,這樣進程就被移到後臺運行,終端還能繼續接受命令。

概念:當前任務 若是後臺的任務號有2個,[1],[2];若是當第一個後臺任務順利執行完畢,第二個後臺任務還在執行中時,當前任務便會自動變成後臺任務號碼「[2]」 的後臺任務。因此能夠得出一點,即當前任務是會變更的。當用戶輸入「fg」、「bg」和「stop」等命令時,若是不加任何引號,則所變更的均是當前任務原文:https://blog.csdn.net/u014540717/article/details/53079111

相關文章
相關標籤/搜索