使用update-rc.d + LOG在Unix上进行自定义服务?

时间:2011-10-05 19:50:28

标签: java unix

我有一个充当网络服务器的java程序。感谢实用程序update-rc.d我已经在Debian / Unix服务器上安装了一个服务,以便它在SSH会话期间一直运行而不需要连接。

因为我的程序是java字节码,而不是本机unix可执行文件,所以我使用以下教程使其作为守护程序工作:java as a daemon service

问题是我再也看不到程序的输出了。我需要查看程序的输出,因为它显示异常发生时的堆栈跟踪。如何将标准和错误输出流重定向到日志文件?

替代问题:即使我从SSH注销,如何运行java程序并继续运行?

1 个答案:

答案 0 :(得分:1)

您可以将app launch命令包装到shell脚本中并在那里重定向输出:

/usr/bin/java -jar app.jar >> /var/log/app/app.log 2>&1

但是我建议使用一些日志框架来获得对日志文件的更多控制。类似slf4j logback或任何其他后端的内容。

  

替代问题:即使我从SSH注销,如何运行java程序并继续运行?

您可以使用screen执行此操作:

screen java -jar app.jar ...

然后在SSH登录后运行

screen -r

恢复屏幕会话。