linux後台執行之screen和nohup

2021-09-11 17:54:12 字數 1491 閱讀 3510

如果你正在執行乙個程序,而且你覺得在退出帳戶時該程序還不會結束,那麼可以使用nohup命令. 該命令可以在你退出帳戶/關閉終端之後繼續執行相應的程序. nohup就是不掛起的意思.

我們現在開始啟動服務 python pyserver.py,並且希望在後台執行.我們就可以使用nohup,命令如下:

1.nohup ./hello &

此時預設地程式執行的輸出資訊放到當前資料夾的nohup.out 檔案中去,加不加&並不會影響這個命令。只是讓程式前台或者後台執行而已

然後另外乙個ssh中, 我們用pidof hello來檢視程序的pid資訊, 顯示出程序的pid為29738

接著我們關掉那個啟動了hellossh, 重新用pidof hello再次檢視程序資訊, 發現程序仍然存在

nohup命令

說明用途

結束通話地執行命令

語法nohup command [ arg … ] [ & ]

描述nohup 命令執行由 command 引數和任何相關的 arg 引數指定的命令,忽略所有結束通話(sighup)訊號。在登出後使用 nohup 命令執行後台中的程式。要執行後台中的 nohup 命令,新增 & ( 表示「and」的符號)到命令的尾部

無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 檔案中。如果當前目錄的 nohup.out 檔案不可寫,輸出重定向到 $home/nohup.out 檔案中。如果沒有檔案能建立或開啟以用於追加,那麼 command 引數指定的命令不可呼叫。如果標準錯誤是乙個終端,那麼把指定的命令寫給標準錯誤的所有輸出作為標準輸出重定向到相同的檔案描述符.

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

退出值描述

126可以查詢但不能呼叫 command 引數指定的命令

127nohup 命令發生錯誤或不能查詢由 command 引數指定的命令, 否則,nohup 命令的退出狀態是 command 引數指定命令的退出狀態

如果想在關閉ssh連線後剛才啟動的程式繼續執行怎麼辦, 可以使用nohup.

但是如果要求第二天來的時候. 一開ssh, 還能檢視到昨天執行的程式的狀態,

然後繼續工作,這時nohup是不行了, 需要使用screen來達到這個目的.

雖然nohup很容易使用,但還是比較「簡陋」的,對於簡單的命令能夠應付過來,對於複雜的需要人機互動的任務就麻煩了

執行screen , 按任意鍵進入子介面;

我用./hello命令開始執行,如果下班了,但是想關閉ssh以後./hello繼續執行,那麼按ctrl+a再按d

這樣暫停了子介面,會顯示[detached]的字樣,這時候 我回到了父介面;

用screen –ls檢視目前子介面的狀態screen -ls

posted @

2017-12-12 09:28

python許三多 閱讀(

...)

編輯收藏

Linux後台執行

解除螢幕占用,並且保持命令執行。類似於windows最小化。top 檢視cpu資訊。定位將前面內容定位到後面檔案當中 echo echo aaa 1.txt 把aaa寫到 覆蓋 aaa中 echo 1.txt 可以用來清空檔案 在命令的尾部新增 進行後台執行,命令有返回還是會返回到控制台,先將返回的...

linux命令後台執行

有兩種方式 1.command 後台執行,你關掉終端會停止執行 2.nohup command 後台執行,你關掉終端也會繼續執行 1 root bin rsync.sh 用 jobs 命令檢視正在執行的任務 jobs 1 running root bin rsync.sh 如果想把它調回到前台執行,...

linux程式後台執行

方法 1在終端輸入命令 pso pso.file 2 1 解釋 將 pso直接放在後台執行,並把終端輸出存放在當前目錄下的 pso.file 檔案中。當客戶端關機後重新登陸伺服器後,直接檢視 pso.file 檔案就可看執行結果 命 令 cat pso.file 方法 2在終端輸入命令 nohup....