在Linux终端命令中经常要使用到在关闭终端界面的情况下需要后台挂起执行的进程,也就是关闭终端后台任务的进程还是会常驻,下面就简单介绍下 nohup 命令
nohup.out
的文件到当前目录下,如果当前目录的 nohup.out
文件不可写,输出重定向到$HOME/nohup.out
文件中,经常与 &
符号配合执行,使得程序在后台执行 nohup Command [ Arg … ] [ & ]
java -jar xdr630.jar &
appending output to nohup.out
nohup.out
文件中去,加不加 &
并不会影响这个命令,只是让程序前台或者后台运行nohup.out
文件不可写,输出重定向到 $HOME/nohup.out
文件中nohup java -jar xdr630.jar &
nohup.out
中2>&1 解释:
重定向运算符 > 将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 xdr.log 文件中。 0 – stdin (standard input,标准输入)
1 – stdout (standard output,标准输出)
2 – stderr (standard error,标准错误输出)
1、所有输出(包括标准输出和错误输出)都合并并记录到 xdr.log 文件中
nohup java -jar xdr630.jar > xdr.log 2>&1 &
xdr.log:重定向的目标文件,Java程序的标准输出(包括程序打印的信息等)将会被写入到这个文件中
2>&1:这部分是错误输出重定向,2代表标准错误输出(stderr),&1代表标准输出(在这里也就是xdr.log)。所以2>&1的意思是将标准错误输出重定向到标准输出,也就是说,不仅标准输出会被写入到 xdr.log 文件中,而且所有错误信息也会被一并写入同一个文件。
2、只输出错误信息到日志文件中
nohup java -jar xdr630.jar > /dev/null 2>xdr.log &
/dev/null
:将标准输出(stdout,即程序的常规输出)重定向到/dev/null。/dev/null是一个特殊的设备文件,它接收任何写入的数据并丢弃它们,这意味着程序的标准输出将被丢弃,不显示在屏幕上2>xdr.log
:将标准错误输出(stderr,即程序的错误信息)重定向到名为xdr.log的文件中。这意味着如果程序有任何错误消息,它们会被记录在这个xdr.log文件里,而不是显示在终端上原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。