原文地址:http://www.isee.xyz/a/5ea2a30dcfe99271725ca17bnohupnohup意思是不挂断,如果你正在运行一个进程,感觉退出时该account进程还没有结束,所以可以使用nohup命令。该命令可以在你退出账号/关闭终端后继续运行相应的进程。==这条命令运行后是前台进程==eg:nobupjava-jarxxx.jar&&指示程序在后台运行eg:java-jarxxx.jar&两个特性都使用nohup来运行程序:结果会默认输出到nohup.out使用Ctrl+C发送SIGINT信号,程序关闭会话关闭发送SIGHUP信号,程序免疫使用&后台运行程序:结果会是输出到终端使用Ctrl+C发送SIGINT信号,程序免疫关闭session发送SIGHUP信号,程序关闭同时使用以上两个命令结合使用可以使程序在后台运行,关闭windoworctrl+c不会中断进程nohupjava-jarxxx.jar&,日志文件文件描述符的处理类型含义标准输入(standardinput)0从键盘输入标准输出(standardoutput)1输出到屏幕(控制台)错误输出(erroroutput)2使用nohupjava-jarxxx.jar命令输出到屏幕(控制台)会默认生成一个nohup.out文件来记录日志,标准输出和错误输出都会在这个文件中。如果我们要将日志输出到其他指定的文件,可以使用输出符号>来指定你的文件。例如可以使用命令将文件输出到log.txt:nohupjava-jarxxx.jar1>log.txt字符1可以省略,这样标准输出日志就会输出到log.txt文件,但是错误日志怎么处理呢?我需要使用重定向到==命令来绑定==。修改命令为:nohupjava-jarxxx.jar>log.txt2>&1&将错误输出重定向到标准输出1,这样标准输出和错误输出都会在log.txt文件中。如果不需要日志,如何设置?有时程序中已经指定了日志的位置,那么就不需要nohup.out文件了,此时应该丢弃这个文件。/dev/null代表linux的空设备文件,写入这个文件的所有内容都会丢失,俗称黑洞,我们可以将日志输出指向这里:nohupjava-jarxxx.jar>/dev/null2>&1总结==后台启动的命令,不需要nohup.out文件:==nohupjava-jarxxx.jar>/dev/null2>&1&
