linux 中的 nohup 命令(設定後臺程式): nohup: ignoring input and appending output to ‘nohup.out’
一、Linux 下使用 nohup
Unix/Linux下一般比如想讓某個程式在後臺執行,很多都是使用 & 在程式結尾來讓程式自動執行。
比如我們要執行weblogic在後臺:
./startWebLogic.sh &
但是加入我們很多程式並不象weblogic一樣做成守護程式,可能我們的程式只是普通程式而已,一般這種程式使用 &結尾。
但是如果終端關閉,那麼程式也會被關閉。
但是為了能夠後臺執行,那麼我們就可以使用nohup這個命令。
比如我們有個startWebLogic.sh需要在後臺執行,那麼就使用nohup:
nohup ./startWebLogic.sh &
提示:
[~]$ appending output to nohup.out
嗯,證明執行成功,同時把程式執行的輸出資訊放到當前目錄的 nohup.out 檔案中去。
nohup 命令
用途:LINUX命令用法,不結束通話地執行命令。
語法:nohup Command [ Arg ... ] [ & ]
描述:nohup 命令執行由 Command 引數和任何相關的 Arg 引數指定的命令,忽略所有結束通話(SIGHUP)訊號。
在登出後使用 nohup 命令執行後臺中的程式。要執行後臺中的 nohup 命令,新增 & ( 表示“and”的符號)到命令的尾部。
nohup: ignoring input and appending output to `nohup.out' 忽略輸入輸出,將資訊化資訊記錄到nohup.out檔案中。
二、使用Linux重定向解決nohup.out無寫許可權問題
■場景
執行nohup命令的時候,經常會出現下面這種沒有寫入許可權的錯誤。
nohup: ignoring input and appending output to `nohup.out'
nohup: failed to run command `/etc/nginx_check.sh': Permission denied
■linux重定向:
0、1和2分別表示標準輸入、標準輸出和標準錯誤資訊輸出,可以用來指定需要重定向的標準輸入或輸出。
在一般使用時,預設的是標準輸出,既1。當我們需要特殊用途時,可以使用其他標號。
例如,將某個程式的錯誤資訊輸出到log檔案中:./program 2>log。
這樣標準輸出還是在螢幕上,但是錯誤資訊會輸出到log檔案中。
另外,也可以實現0,1,2之間的重定向。2>&1:將錯誤資訊重定向到標準輸出。
Linux下還有一個特殊的檔案/dev/null,它就像一個無底洞,所有重定向到它的資訊都會消失得無影無蹤。
這一點非常有用,當我們不需要回顯程式的所有資訊時,就可以將輸出重定向到/dev/null。
如果想要正常輸出和錯誤資訊都不顯示,則要把標準輸出和標準錯誤都重定向到/dev/null, 例如:
# ls 1>/dev/null 2>/dev/null
還有一種做法是將錯誤重定向到標準輸出,然後再重定向到 /dev/null,例如:
# ls >/dev/null 2>&1
注意:此處的順序不能更改,否則達不到想要的效果,此時先將標準輸出重定向到 /dev/null,
然後將標準錯誤重定向到標準輸出。
由於標準輸出已經重定向到了/dev/null,因此標準錯誤也會重定向到/dev/null,於是一切靜悄悄。
■關於nohup
在使用nohup命令的時候,經常由於輸出nohup.out的路徑沒有寫入許可權,而無法使用nohup。
這是可以使用Linux重定向的方法,將nohup.out重定向至一個有寫入許可權的路徑,或者直接扔到/dev/null中。
nohup ./program >/dev/null 2>/dev/null &
或者
nohup ./program >/dev/null 2>&1 &
三、使用nohup設定後臺程式
引言: 有時候需要在Linux上設定一個後臺程式,但是當你關閉terminal之時,它會被系統kill掉,那該如何來實現其後臺程式能一直執行下去呢?
使用方式:
nohup command-with-options &
當在螢幕上敲擊上述命令之後,螢幕上會出現如下資訊:
$ nohup: ignoring input and appending output to `nohup.out’
敲擊回車,就退出了nohup.out當前的介面,進入正常的命令列。
輸出日誌資訊:
接下來的輸出的日誌資訊,將輸出到nohup.log.即將螢幕上輸出的日誌資訊直接輸出到nohup.log檔案。
後臺程式的標誌符:
如果一個命令只使用&來標識,則表示其在當前Session中,執行在後臺。如果當前Session關閉或者當前的terminal工具關閉,則其附屬的程式將會關閉。
正常執行的後臺程式都是需要nohup與&,兩者並行使用的,方可保證其在後臺正常執行。
轉自:https://blog.csdn.net/blueheart20/article/details/78226066
https://www.cnblogs.com/quchunhui/p/5582371.html
http://aniyo.iteye.com/blog/1496442
相關文章
- 使用nohup命令讓linux程式後臺執行Linux
- 用nohup命令程式在後臺執行
- nohup不輸出nohup.out日誌資訊,已解決。
- linux後臺執行命令:&與nohup的用法Linux
- Linux nohup:後臺不掛起命令(後臺執行命令)Linux
- Nohup命令讓Linux下的程式在後臺執行 - 轉Linux
- linux後臺執行-nohupLinux
- Linux後臺執行指令碼命令之nohupLinux指令碼
- nohup命令
- Unix/Linux中nohup命令講解Linux
- Ubuntu16.04 -- 後臺程式NohupUbuntu
- linux的nohup命令的用法。Linux
- windows的nohup後臺執行Windows
- Linux基礎命令—nohupLinux
- Linux命令nohup+screenLinux
- nohup 命令的使用
- 使用nohup讓程式永遠後臺執行
- nohup命令詳解
- nohup命令學習
- nohup 命令及其示例
- Jenkins踩坑之旅:nohup後臺執行shell命令Jenkins
- 【Linux&Unix】使用nohup讓程式永遠後臺執行Linux
- [原創] Linux 中的 nohup 與 &Linux
- Linux終端退出後導致nohup程式退出Linux
- nohup
- nohup在後臺常駐執行php指令碼PHP指令碼
- Linux基礎命令---忽略掛起訊號nohupLinux
- 還在用nohup? 來試試Supervisor吧 -Linux後臺執行Linux
- unix下 nohup 命令使用方法(轉)
- Linux 任務控制(bg job fg nohup &)Linux
- shell:nohup (在系統後臺不掛起地執行命令,退出終端不會影響程式的執行)
- Input/output error [ linux ]ErrorLinux
- nohup 原理及實戰
- Linux :忘記使用nohup該如何補救Linux
- nohup使用相關知識
- Linux 下nohup 和 &有什麼聯絡呢?Linux
- 第十章 OPENWRT安裝nohup,因為不明原因nohup沒有安裝
- Linux nohup 啟動服務且不輸出日誌Linux