在生产环境,我们通常需要让java进程后台运行,并且即使会话关闭,进程也依然存在。
使用的命令:
nohup java -jar xxx.jar -> aaa.log 2>&1 &
详细介绍下上面这条命令
(1)nohup:是让进程持续运行,即使会话关闭也不影响。
(2)java -jar xxx.jar:这是是java 以jar包形式启动应用程序,xxx.jar是我们的程序jar包
(3)-> aaa.log 2>&1:是将标准输出和标准错误都重定向到aaa.log文件中
可以看到providerlog.log有记录程序的部分启动日志,我们的应用日志通常会使用日志框架归档到指定的日志目录,等日志框架加载后,应用程序就会将日志记录到指定日志文件。但将进程信息输出到一个日志文件依然很有必要,因为有些没有被程序代码捕获的异常,最终会输出到控制台,如果没有输出到日志文件,那么这部分异常记录将丢失。
(4)最后的&符号:这个是后台运行的关键。
&和nohup配合才能使一个进程完美的在后台运行。如果只是用&,那么会话关闭后,进程也将结束。而如果只是用nohup,则在当前会话中没法执行其他操作。