我在Java应用程序中使用Log4J来记录应用程序运行时的一些内容。我使用Ubuntu 14
命令在我的VPS
"nohup java -jar application.jar &"
上启动它以保持它活着,即使我关闭终端。
只要终端打开,应用程序就会在日志文件中登录,当我关闭终端时它不会。但它仍然在运行。
我的log4j.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="true" />
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="10" />
<param name="file" value="LOG/connect.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
</log4j:configuration>
我是如何启动jar的:
nohup java -jar application.jar &
我在ubuntu 12.04中也有类似的问题,我通过添加可执行文件作为服务来修复它,启用了respawn而不是使用nohup。在os的/ etc / init /文件夹中创建一个.conf文件。
start on runlevel [2345]
respawn
exec /usr/bin/java -jar /path/to/jar
使用service serviceName stop和service serviceName start手动启动和停止服务