當前位置:首頁 » 雲伺服器 » 如何看伺服器nohup進程

如何看伺服器nohup進程

發布時間: 2023-02-27 21:25:59

❶ 如何查看linux伺服器運行狀態

1、ps aux 或netstat -tlunp
ps是進程查看命令,netstat是埠查看命令,在Linux系統中,服務一定是有進程的,所以使用ps命令可以查看服務運行情況,另外,Linux服務多數是網路服務,所以通過netstat命令也可以查看服務運行狀態。

2、service 服務名 status
比如查看httpd的Web服務的運行狀態,執行service httpd status,如下圖所示:

3、/sbin/service --status-all |grep "服務名"
比如查看httpd的web服務,執行 /sbin/service --status-all |grep "httpd"即可。如下圖所示。

4、chkconfig --list
比如查看httpd的web服務,執行 chkconfig --list |grep "httpd"即可。如下圖所示。

❷ Linux守護進程詳解

在Linux伺服器實際應用中,經常會有需要長時間執行的任務。這類任務若在前台運行,用戶無法進行其他操作或者斷開與伺服器的連接,否則任務將被中止。此時適合使用守護進程。為了使用守護進程,需要了解Linux前台、後台、守護進程的概念與使用,本文將對此進行講解。

可以看出,」後台任務」與」前台任務」的重要區別: 是否繼承標准輸入 。所以,執行後台任務的同時,用戶還可以輸入其他命令。

為了理解守護任務為何在結束session時也不退出,需要先了解Linux下退出session時發生的操作。

Session退出時,linux系統設計如下:

前台任務會隨著session的退出而退出是因為它收到了 SIGHUP信號
後台任務是否會受到SIGNUP信號,取決於shell的 huponexit 參數。可以通過 $ shopt | grep huponexit 查看該參數的值。大多數Linux系統,這個參數默認關閉(off)。因此,session退出的時候,不會把SIGHUP信號發給」後台任務」,即此時的後台任務是守護進程,但這顯然不夠安全。並不保險,因為有的系統的 huponexit 參數可能是打開的(on)狀態。

更保險的方法是使用 disown命令。它可以將指定任務從」後台任務」列表(jobs命令的返回結果)之中移除 。一個」後台任務」只要不在這個列表之中,session 就肯定不會向它發出SIGHUP信號。

執行上面的命令以後, server.js 進程就被移出了」後台任務」列表。你可以執行 jobs 命令驗證,輸出結果裡面,不會有這個進程。

但是,這樣還存在問題。因為 」後台任務」的標准 I/O 繼承自當前 session, disown 命令並沒有改變這一點 。一旦」後台任務」讀寫標准 I/O,就會發現它已經不存在了,所以就 報錯終止執行 。 為了解決這個問題,需要對」後台任務」的 標准 I/O 進行重定向

這樣基本上就沒有問題了。

註:
/dev/null 文件的作用
這是一個無底洞,任何東西都可以定向到這里,但是卻無法打開。
所以一般很大的stdou和stderr當你不關心的時候可以利用stdout和stderr定向到這里

nohup命令對server.js進程做了三件事。
阻止SIGHUP信號發到這個進程。
關閉標准輸入。該進程不再能夠接收任何輸入,即使運行在前台。
重定向標准輸出和標准錯誤到文件nohup.out。

也就是說,nohup命令實際上將子進程與它所在的 session 分離了。 注意,nohup命令不會自動把進程變為」後台任務」,所以必須加上&符號

守護進程創建方法:

方法一:

方法二:

方法三:

fg、bg、jobs、&、nohup、ctrl+z、ctrl+c 命令

一、&
加在一個命令的最後,可以把這個命令放到後台執行,如:

二、ctrl + z
可以將一個正在前台執行的命令放到後台,並且處於暫停狀態。

CTRL+Z 和 CTRL+C的對比

CTRL+Z 和 CTRL+C 都是中斷命令,但是他們的作用卻不一樣.
CTRL+C 是強制中斷程序的執行,而 CTRL+Z 的是將任務中斷,但是此任務並沒有結束,仍然在進程中,只是維持掛起的狀態,用戶可以使用 fg/bg 操作繼續前台或後台的任務。

三、jobs
查看當前有多少在後台運行的進程

jobs -l選項可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated。但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的進程標識。

四、fg
將後台中的命令調至前台繼續運行。如果後台中有多個命令,可以用 fg %jobnumber (jobnumber是命令編號,不是進程號)將選中的命令調出。

五、bg

將一個在後台暫停的命令,變成在後台繼續執行。

如果後台中有多個命令,可以用 bg %jobnumber 將選中的命令調出。

六、kill

方法1:通過jobs命令查看job號(假設為num),然後執行

方法2:通過ps命令查看job的進程號(PID,假設為pid),然後執行

前台進程的終止:Ctrl+c

七、nohup

如果想讓程序即使在關閉當前的終端後也始終在後台執行(之前的&做不到),需要使用nohup命令。
nohup命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。
關閉終端後,在另一個終端jobs已經無法看到後台跑的程序了,此時利用ps(進程查看命令)查看進程。

http://m.2cto.com/os/201301/185701.html

http://www.cnblogs.com/kaituorensheng/p/3980334.html

http://m.blog.csdn.net/article/details?id=50766752

❸ 伺服器後台運行程序

SSH 或者telent 遠程登錄到Linux 伺服器,運行一些需要很長時間才能完成的任務。因為它們執行的時間太長了。必須等待它們執行完畢,在此期間不能關掉窗口或者斷開連接,否則這個任務就會被殺掉,一切半途而廢了。

nohup:不掛斷的運行命令
&:放在後台運行

jobs:查看當前終端運行的後台進程
ps -ef:進程查看命令

Screen是一款由GNU計劃開發的用於命令行終端切換的自由軟體。用戶可以通過該軟體同時連接多個本地或遠程的命令行會話,並在其間自由切換。

screen常見命令:

在Screen環境下,所有的會話都獨立的運行,並擁有各自的編號、輸入、輸出和窗口緩存。用戶可以通過快捷鍵在不同的窗口下切換,並可以自由的重定向各個窗口的輸入和輸出。

ps:創建screen時,用S,不是s
pps:創建screen之前最好退出anaconda創建的虛擬環境,在base環境創建。不然會出現丟包和進錯虛擬環境的問題。

❹ linux怎麼查詢nohup的進程

在linux操作系統中從後台一直運行某個程序的方法,就是使用nohup命令了。

Unix/Linux下一般比如想讓某個程序在後台運行,很多都是使用 & 在程序結尾來讓程序自動運行。

比如要運行mysql在後台:

復制代碼
代碼如下:

/usr/local/mysql/bin/mysqld_safe
–user=mysql &

但是加入很多程序並不象mysqld一樣做成守護進程,可能程序只是普通程序而已,一般這種程序使用 &
結尾,但是如果終端關閉,那麼程序也會被關閉。
為了能夠後台運行,可以使用nohup這個命令,比如有個test.php需要在後台運行,並且希望在後台能夠定期運行,那麼就使用nohup:

復制代碼
代碼如下:

nohup /root/test.php &

在shell中回車後提示:

[~]$ appending output to nohup.out

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

但是有時候在這一步會有問題,當把終端關閉後,進程會自動被關閉,查看nohup.out可

以看到在關閉終端瞬間服務自動關閉。

咨詢紅旗Linux工程師後,他也不得其解,在我的終端上執行後,他啟動的進程竟然在關閉終端後依然運行。在第二遍給我演示時,我才發現我和他操作終端時的一個細節不同:他是在當shell中提示了nohup成功後還需要按終端上鍵盤任意鍵退回到shell輸入命令窗口,然後通過在shell中輸入exit來退出終端;而我是每次在nohup執行成功後直接點關閉程序按鈕關閉終端.。所以這時候會斷掉該命令所對應的session,導致nohup對應的進程被通知需要一起shutdown。這個細節有人和我一樣沒注意到,所以在這兒記錄一下了。

附:nohup命令參考

nohup 命令

用途:不掛斷地運行命令。

語法:nohup Command [ Arg … ] [& ]

描述:nohup 命令運行由 Command 參數和任何相關的 Arg 參數指定的命令,忽略所有掛斷(SIGHUP)信號。在注銷後使用 nohup
命令運行後台中的程序。要運行後台中的 nohup 命令,添加 & ( 表示」and」的符號)到命令的尾部。

無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 文件中。如果當前目錄的 nohup.out
文件不可寫,輸出重定向到 $HOME/nohup.out 文件中。如果沒有文件能創建或打開以用於追加,那麼 Command
參數指定的命令不可調用。如果標准錯誤是一個終端,那麼把指定的命令寫給標准錯誤的所有輸出作為標准輸出重定向到相同的文件描述符。

退出狀態:該命令返回下列出口值:

126 可以查找但不能調用 Command 參數指定的命令。

127 nohup 命令發生錯誤或不能查找由 Command 參數指定的命令。

否則,nohup 命令的退出狀態是 Command 參數指定命令的退出狀態。

nohup命令及其輸出文件

nohup命令:如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。nohup就是不掛起的意思(
no hang up)。

該命令的一般形式為:

復制代碼
代碼如下:

nohup command &

使用nohup命令提交作業

如果使用nohup命令提交作業,那麼在預設情況下該作業的所有輸出都被重定向到一個名為nohup.out的文件中,除非另外指定了輸出文件:

復制代碼
代碼如下:

nohup command > myout.file 2>&1
&

在上面的例子中,輸出被重定向到myout.file文件中。

使用 jobs 查看任務。

使用 fg
%jobnumber是將任務拿到前台執行,拿到前台後如果要關閉這個任務按Ctrl+c組合鍵即可,但如果要暫停這個任務可以按Ctrl+z組合鍵這時就會將任務置於暫停狀態。

[root@wangdm ~ 22:51 #81]# jobs
[2]+ Stopped dd
if=/dev/zero of=/dev/null bs=8k count=100000000
[3]- Stopped
dd if=/dev/zero of=/dev/null bs=8k count=100000000

如果想要暫停的任務繼續在後執行可以使用 bg %jobnumber這樣暫停後的任務繼續在後台運行狀態會變為running

❺ linux查看進程命令

linux查看進程命令如下:

操作設備:戴爾筆記本電腦

操作系統:win10

操作程序:xshell軟體

1、首先打開xshell軟體,連接上linux伺服器,使用指令ps查看系統進程,參數a表示全部,u表示以用戶格式顯示,x表示進程參數。

❻ Lunix運行腳本、任務(sh、nohup、qsub)

產生日誌:

sh **.sh &> xx.log

不產生日誌:

sh **.sh > /dev/null 2>&1 &

nohup:no hang up 的縮寫,就是不掛斷的意思 。 

nohup命令:如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那麼可以使用nohup命令。 該命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。 在預設情況下該作業的所有輸出都被重定向到一個名為nohup.out的文件中。

使用許可權:所有使用者

語法格式

nohup Command [ Arg … ] [& ]

參數說明:

Command :要執行的命令。

Arg :一些參數,可以指定輸出文件。

& :讓命令在後台執行,終端退出後命令仍舊執行。

實例

以下命令在後台執行 root 目錄下的 runoob.sh 腳本:

nohup /root/runoob.sh &

在終端如果看到以下輸出說明運行成功:

appending output to nohup.out

這時我們打開 root 目錄 可以看到生成了 nohup.out 文件。

如果要停止運行,你需要使用以下命令查找到 nohup 運行腳本到 PID,然後使用 kill 命令來刪除:

ps -aux | grep "runoob.sh"

參數說明:

a  : 顯示所有程序

u  : 以用戶為主的格式來顯示

x  : 顯示所有程序,不區分終端機

另外也可以使用 ps -def | grep "runoob.sh" 命令來查找。

找到 PID 後,就可以使用 kill PID 來刪除。

kill -9  進程號PID

以下命令在後台執行 root 目錄下的 runoob.sh 腳本,並重定向輸入到 runoob.log 文件:

nohup /root/runoob.sh > runoob.log 2>&1 &

2>&1  解釋:將標准錯誤 2 重定向到標准輸出 &1 ,標准輸出 &1 再被重定向輸入到 runoob.log 文件中。

0 – stdin (standard input,標准輸入)

1 – stdout (standard output,標准輸出)

2 – stderr (standard error,標准錯誤輸出)

實時監測日誌輸出內容命令:tail

tail 命令是nohup命令的好搭檔。配合-f參數,可以實時監視向日誌文件增加的信息。

tail -f myout.log

tail -f 等同於–follow=descriptor,根據文件描述符進行追蹤,當文件改名或被刪除,追蹤停止

tail -F 等同於–follow=name --retry,根據文件名進行追蹤,並保持重試,即該文件被刪除或改名後,如果再次創建相同的文件名,會繼續追蹤

tailf 等同於tail -f -n 10,與tail -f不同的是,如果文件不增長,它不會去訪問磁碟文件,所以tailf特別適合那些便攜機上跟蹤日誌文件,因為它減少了磁碟訪問,可以省電。

監測程序是否在正常運行中:ps

ps命令也可以和nohup命令配合使用,用於顯示當前進程 (process) 的狀態。可以監視後台程序是否在正常運行中或者已經掛掉。

ps -ef|grep yourcommand           # -ef 參數顯示所有命令,連帶啟動時的命令行參數

qsub命令用來從登陸節點上向計算節點進行任務投遞。前提是在伺服器上有集群管理工具分配計算節點等。SGE(SGE, Sun Grid Engine)集群管理工具可以用來提交批處理作業,SGE支持單或多節點作業,它將用戶投遞的任務進行排隊,然後將任務交給能夠運行的結算節點執行,工作流程可以分為四步:接受用戶投放的任務;在任務運行以前,將任務放到一個存儲區域;發送任務到一個執行設備,並監控任務的運行;運行結束寫回結果並記錄運行日誌。

qsub [ options ] [ command | -- [ command_args ]]

1. -@ optionfile (contains all valid options)  就是把qsub命令的可選項組合成一定功能的語句,保存在一個文件中。  qsub -a optionfilename jobfilename  

2. -a date_time   設置作業什麼時候可以執行。   格式:CC YY MMDDHHMM.SS 如 201109272213.21   qsub -a 201109272213.21 ../simplejob

3. -A account_string  Identifies the account to which the resource consumption of the job should be charged   設置一個作業的賬戶名,便於統計該賬戶使用的資源等信息    qsub -A testaccountname jobname  

4. -ac 添加名/值對到作業上下文   -dc 刪除。。   -sc 設置(修改)。。   Contexts provide a way to dynamically attach and remove meta-     information to and from a job. The context variables are not     passed to the job's execution context in its environment     The outcome of the evaluation of all -ac, -dc, and -sc options     or corresponding values in qmon is passed to defined JSV     instances as parameter with the name -ac.  

5. -ar ar_id 分配已提交作業,作為它的一部分,給已存在預約。ar=advance reservation   qsub -ar 60 jobname   #ai_di = unsigned integer   

6.  -b y[es]|n[o]      Gives the user the possibility to indicate explicitly whether       command should be treated as binary or script.     

7. -binding 等待理解

8.  -c occasion_specifier(際符)  定義或者重定義作業是否要被檢查,if是,在什麼環境下。        n           no checkpoint is performed.               s           checkpoint when batch server is shut down.               m           checkpoint at minimum CPU interval.               x           checkpoint when job gets suspended.               <interval>  checkpoint in the specified time interval.   qsub -c n jobname

9. -C prefix_string 前綴字元串定義一個在作業命令中的指令     qsub -C "#$" ../simplejob   

10.  -ckpt ckpt_name 選擇檢查點環境來檢查一個作業,同時聲明這個作業是檢查點作業。      qsub -ckpt allanckpt ../simplejob    

11.  -clear 重置作業的所有元素為初始默認狀態    qsub -clear ../simplejob   

12.  -cwd =current working directory  從當前的目錄開始執行作業。如果有相應的配置文件的話,    這個命令將啟動網格引擎的路徑別名設備。    

13.  -dl date_time 設置作業在deadline之前執行完,格式為CC YYU MMDDHHMM.SS    qsub -dl 201101131159.01 ../simplejob

14.  -e [[hostname]:]path,...定義或重新定義作業的標准錯誤流使用的路徑 e=stderror

15.  -h | -h {u|s|o|n|U|O|S}... h=hold 暫停作業執行       'u' .........user hold.             `s'  denotes a system hold.               `o'  denotes a operator hold.               `n'  denotes no hold (requires manager privileges).               `U'  removes a user hold.               `S'  removes a system hold.               `O'  removes a operator hold.        qsub -h ../simplejob(qsub只能使用-h)

16.  -l resource=value,... l=launch 啟動滿足資源需求的作業    Launch the job in a Grid Engine queue meeting the given resource               request list.  In case of qalter the previous definition is               replaced by the specified one.    qsub -l s_core=5 ../simplejob

17.  -q wc_queue_list 定義或重定義可能用來執行作業的隊列,包括群聚隊列、隊列域、隊列實例。    qsub -q all.q ../simplejob

18.  -hard  表示該作業在安排執行之前,作業的資源需求必須滿足。    qsub -hard  ../simplejob

19.  -soft 表示該作業在安排執行之前,作業的資料需求可以有、但不必須有。    qsub -soft ../simplejob

20.  -help 獲取幫助    qsub -help

21.  -hold_jid   wc_job_listt 定義或重定義當前提交的作業對哪些作業有依賴,所依賴的作業使用通配符作業清單表示:wc_job_list    qsub -hold_jid 63926 ../simplejob

22.  -hold_jid_ad wc_job_list ad=array dependency list of the submitted job    定義或者重定義組作業依賴列表。    qsub -hold_jid_ad 1-1200

23.  -t n[-m[:s]]    指定組作業的數量,將指示器與作業關聯    qsub -t 1-1200 ../simplejob

24.  -i [[hostname]:]file,... 定義或重定義一個文件為作業的標准輸入流    qsub -i stdin job

25.  -j y[es]|n[o] 指定作業的標准錯誤流是否合並到標准輸出流,如果-j y 和-e都存在的話,SGE將忽略後者。    qsub -j y ../simplejob

qstat -f # 查看用戶任務

qstat -j jobId  # 按任務id查看

qstat -explain a|c|A|E -j jobID # 查看任務任務並給出解釋

qstat -u user  # 按用戶查看

qw: 表示等待狀態

hqw: 任務掛起等待中,待依賴的任務完成後執行

Eqw: 投遞任務出錯

r: 表示任務正在運行

s: 暫時掛起

dr: 節點掛了之後,刪除任務就會出現這個狀態,只有節點重啟之後,任務才會消失

qdel -j 1111  刪除任務號為1111的任務

qdel -u AAA  刪除AAA投遞的所有任務

歡迎大家交流心得~~~3QU!!!...........

---------------------------------------------------------------------------------------------------------I am a line !----------------------------------------------------------------------------------------------

❼ linux怎麼查詢nohup的進程

在linux操作系統中從後台一直運行某個程序的方法,就是使用nohup命令了。Unix/Linux下一般比如想讓某個程序在後台運行,很多都是使用在程序結尾來讓程序自動運行。以下是查詢方法。

❽ 如何查看Linux伺服器的進程

1.ps

ps命令是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和它所運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等。總之大部分信息都是可以通過執行該命令得到的。ps命令最常用來監控後台進程的工作情況,因為後台進程是不和屏幕、鍵盤這些標准輸入/輸出設備進行通信的,所以如果需要檢測後台情況,就需要使用ps命令了。它的格式如下所示:

格式:ps [選項]

其主要選項如下。

-a:顯示系統中所有進程的信息。

-e:顯示所有進程的信息。

-f:顯示進程的所有信息。

-l:以長格式顯示進程信息。

-r:只顯示正在運行的進程。

-u:顯示面向用戶的格式(包括用戶名、CPU及內存的使用情況等信息)。

-x:顯示所有非控制終端上的進程信息。

-p:顯示由進程ID指定的進程信息。

-t:顯示指定終端上的進程信息。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:335
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:943
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:802
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:510
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371