天津和平做網(wǎng)站多少錢怎么創(chuàng)建自己的游戲網(wǎng)站
在Linux終端命令中經(jīng)常要使用到在關(guān)閉終端界面的情況下需要后臺掛起執(zhí)行的進(jìn)程,也就是關(guān)閉終端后臺任務(wù)的進(jìn)程還是會常駐,下面就簡單介紹下 nohup 命令
1. nohup
-
nohup 英文全稱 no hang up(不掛起),默認(rèn)情況下(非重定向時),會輸出一個名叫
nohup.out
的文件到當(dāng)前目錄下,如果當(dāng)前目錄的nohup.out
文件不可寫,輸出重定向到$HOME/nohup.out
文件中,經(jīng)常與&
符號配合執(zhí)行,使得程序在后臺執(zhí)行 -
語法格式:
nohup Command [ Arg … ] [ & ]
-
參數(shù)說明:
Command:要執(zhí)行的命令
Arg:一些參數(shù),可以指定輸出文件
&:讓命令在后臺執(zhí)行,終端退出后命令仍舊執(zhí)行 -
舉例:執(zhí)行 jar 包
java -jar xdr630.jar &
- 在終端如果看到以下輸出說明運(yùn)行成功:
appending output to nohup.out
-
此時默認(rèn)的程序運(yùn)行的輸出信息放到當(dāng)前文件夾的
nohup.out
文件中去,加不加&
并不會影響這個命令,只是讓程序前臺或者后臺運(yùn)行 -
如果當(dāng)前目錄的
nohup.out
文件不可寫,輸出重定向到$HOME/nohup.out
文件中 -
如:
nohup java -jar xdr630.jar &
-
這種方式會把jar包執(zhí)行的所有日志輸出到
nohup.out
中 -
建議采用如下方式:
2>&1 解釋:
重定向運(yùn)算符 >
將標(biāo)準(zhǔn)錯誤 2 重定向到標(biāo)準(zhǔn)輸出 &1 ,標(biāo)準(zhǔn)輸出 &1 再被重定向輸入到 xdr.log 文件中。
0 – stdin (standard input,標(biāo)準(zhǔn)輸入)
1 – stdout (standard output,標(biāo)準(zhǔn)輸出)
2 – stderr (standard error,標(biāo)準(zhǔn)錯誤輸出)
1、所有輸出(包括標(biāo)準(zhǔn)輸出和錯誤輸出)都合并并記錄到 xdr.log 文件中
nohup java -jar xdr630.jar > xdr.log 2>&1 &
xdr.log:重定向的目標(biāo)文件,Java程序的標(biāo)準(zhǔn)輸出(包括程序打印的信息等)將會被寫入到這個文件中
2>&1:這部分是錯誤輸出重定向,2代表標(biāo)準(zhǔn)錯誤輸出(stderr),&1代表標(biāo)準(zhǔn)輸出(在這里也就是xdr.log)。所以2>&1的意思是將標(biāo)準(zhǔn)錯誤輸出重定向到標(biāo)準(zhǔn)輸出,也就是說,不僅標(biāo)準(zhǔn)輸出會被寫入到 xdr.log 文件中,而且所有錯誤信息也會被一并寫入同一個文件。
2、只輸出錯誤信息到日志文件中
nohup java -jar xdr630.jar > /dev/null 2>xdr.log &
-
/dev/null
:將標(biāo)準(zhǔn)輸出(stdout,即程序的常規(guī)輸出)重定向到/dev/null。/dev/null是一個特殊的設(shè)備文件,它接收任何寫入的數(shù)據(jù)并丟棄它們,這意味著程序的標(biāo)準(zhǔn)輸出將被丟棄,不顯示在屏幕上 -
2>xdr.log
:將標(biāo)準(zhǔn)錯誤輸出(stderr,即程序的錯誤信息)重定向到名為xdr.log的文件中。這意味著如果程序有任何錯誤消息,它們會被記錄在這個xdr.log文件里,而不是顯示在終端上 -
程序的正常輸出被丟棄,錯誤輸出則被記錄到xdr.log文件中
參考:【Linux】nohup執(zhí)行jar包