linux 中的 nohup 命令(设置后台进程): nohup: ignoring input and appending output to ‘nohup.out’
前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到教程。
?
一、Linux 下使用 nohup
Unix/Linux下一般比如想讓某個(gè)程序在后臺(tái)運(yùn)行,很多都是使用 & 在程序結(jié)尾來讓程序自動(dòng)運(yùn)行。
比如我們要運(yùn)行weblogic在后臺(tái):
 ./startWebLogic.sh &
但是加入我們很多程序并不象weblogic一樣做成守護(hù)進(jìn)程,可能我們的程序只是普通程序而已,一般這種程序使用 &結(jié)尾。
但是如果終端關(guān)閉,那么程序也會(huì)被關(guān)閉。
但是為了能夠后臺(tái)運(yùn)行,那么我們就可以使用nohup這個(gè)命令。
比如我們有個(gè)startWebLogic.sh需要在后臺(tái)運(yùn)行,那么就使用nohup:
nohup ./startWebLogic.sh &
提示:
[~]$ appending output to nohup.out
嗯,證明運(yùn)行成功,同時(shí)把程序運(yùn)行的輸出信息放到當(dāng)前目錄的 nohup.out 文件中去。
 nohup 命令
用途:LINUX命令用法,不掛斷地運(yùn)行命令。
語法:nohup Command [ Arg ... ] [ & ]
描述:nohup 命令運(yùn)行由 Command 參數(shù)和任何相關(guān)的 Arg 參數(shù)指定的命令,忽略所有掛斷(SIGHUP)信號(hào)。
在注銷后使用 nohup 命令運(yùn)行后臺(tái)中的程序。要運(yùn)行后臺(tái)中的 nohup 命令,添加 & ( 表示“and”的符號(hào))到命令的尾部。
nohup: ignoring input and appending output to `nohup.out'? 忽略輸入輸出,將信息化信息記錄到nohup.out文件中。
?
二、使用Linux重定向解決nohup.out無寫權(quán)限問題
■場景
執(zhí)行nohup命令的時(shí)候,經(jīng)常會(huì)出現(xiàn)下面這種沒有寫入權(quán)限的錯(cuò)誤。
nohup: ignoring input and appending output to `nohup.out'
 nohup: failed to run command `/etc/nginx_check.sh': Permission denied
?
■linux重定向:
0、1和2分別表示標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤信息輸出,可以用來指定需要重定向的標(biāo)準(zhǔn)輸入或輸出。
在一般使用時(shí),默認(rèn)的是標(biāo)準(zhǔn)輸出,既1。當(dāng)我們需要特殊用途時(shí),可以使用其他標(biāo)號(hào)。
例如,將某個(gè)程序的錯(cuò)誤信息輸出到log文件中:./program 2>log。
這樣標(biāo)準(zhǔn)輸出還是在屏幕上,但是錯(cuò)誤信息會(huì)輸出到log文件中。
?
另外,也可以實(shí)現(xiàn)0,1,2之間的重定向。2>&1:將錯(cuò)誤信息重定向到標(biāo)準(zhǔn)輸出。
Linux下還有一個(gè)特殊的文件/dev/null,它就像一個(gè)無底洞,所有重定向到它的信息都會(huì)消失得無影無蹤。
這一點(diǎn)非常有用,當(dāng)我們不需要回顯程序的所有信息時(shí),就可以將輸出重定向到/dev/null。
如果想要正常輸出和錯(cuò)誤信息都不顯示,則要把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤都重定向到/dev/null, 例如:
# ls 1>/dev/null 2>/dev/null
還有一種做法是將錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出,然后再重定向到 /dev/null,例如:
# ls >/dev/null 2>&1
注意:此處的順序不能更改,否則達(dá)不到想要的效果,此時(shí)先將標(biāo)準(zhǔn)輸出重定向到 /dev/null,
然后將標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出。
由于標(biāo)準(zhǔn)輸出已經(jīng)重定向到了/dev/null,因此標(biāo)準(zhǔn)錯(cuò)誤也會(huì)重定向到/dev/null,于是一切靜悄悄。
?
■關(guān)于nohup
在使用nohup命令的時(shí)候,經(jīng)常由于輸出nohup.out的路徑?jīng)]有寫入權(quán)限,而無法使用nohup。
這是可以使用Linux重定向的方法,將nohup.out重定向至一個(gè)有寫入權(quán)限的路徑,或者直接扔到/dev/null中。
nohup ./program >/dev/null 2>/dev/null &
或者
nohup ./program >/dev/null 2>&1 &
?
三、使用nohup設(shè)置后臺(tái)進(jìn)程
引言: 有時(shí)候需要在Linux上設(shè)置一個(gè)后臺(tái)進(jìn)程,但是當(dāng)你關(guān)閉terminal之時(shí),它會(huì)被系統(tǒng)kill掉,那該如何來實(shí)現(xiàn)其后臺(tái)進(jìn)程能一直運(yùn)行下去呢?
使用方式:
nohup command-with-options &
當(dāng)在屏幕上敲擊上述命令之后,屏幕上會(huì)出現(xiàn)如下信息:
$ nohup: ignoring input and appending output to `nohup.out’
敲擊回車,就退出了nohup.out當(dāng)前的界面,進(jìn)入正常的命令行。
輸出日志信息:
接下來的輸出的日志信息,將輸出到nohup.log.即將屏幕上輸出的日志信息直接輸出到nohup.log文件。
后臺(tái)進(jìn)程的標(biāo)志符:
如果一個(gè)命令只使用&來標(biāo)識(shí),則表示其在當(dāng)前Session中,運(yùn)行在后臺(tái)。如果當(dāng)前Session關(guān)閉或者當(dāng)前的terminal工具關(guān)閉,則其附屬的進(jìn)程將會(huì)關(guān)閉。
正常運(yùn)行的后臺(tái)進(jìn)程都是需要nohup與&,兩者并行使用的,方可保證其在后臺(tái)正常運(yùn)行。
?
?
?
轉(zhuǎn)自:https://blog.csdn.net/blueheart20/article/details/78226066
? ? ? ? ? ?https://www.cnblogs.com/quchunhui/p/5582371.html
? ? ? ? ? ?http://aniyo.iteye.com/blog/1496442
?
總結(jié)
以上是生活随笔為你收集整理的linux 中的 nohup 命令(设置后台进程): nohup: ignoring input and appending output to ‘nohup.out’的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: QT中设置背景颜色
 - 下一篇: Bootstrap 中: data-to