一、让Java程序作为linux的Daemon后台运行
因为需要对网络环境进行监控,做了个Java程序在linux服务器上运行。但是每次重新启动的时候都要手动的运行,这样就不太现实。所以想到把Java程序做成像Windows的系统服务那样,开机就会自动在后台运行。以前使用过一个工具http://javaservice.objectweb.org/,可以把Java程序注册成为Windows的系统服务,而且使用起来很简单,但是遗憾的是该工具不能注册linux的后台服务。所以不得不另外寻找工具。
最后找到了JavaService Wrapper(http://wrapper.tanukisoftware.org/doc/english/introduction.html),该工具能在很多中平台下面注册为系统服务(查看支持平台)。该工具使用方法有三种模式,我用的是第一种WrapperSimpleApp帮助类,另外的两种方式都需要在原来的程序上进行适当的编码。下面就用我的程序NetWatchDog为例子说明下大概的配置步骤。(其实文档中已经用Jboss进行了演示)
1.建立一个目录名为NetWatchDog,并在该目录下建立bin,lib,conf,logs目录。以下把NetWatchDog目录称为$DOG_HOME。
2.把下载来的文件解压,把$WRAPPER_HOME/bin/wrapper,$WRAPPER_HOME/src/bin/sh.script.in文件copy到$DOG_HOME/bin目录中。
3.把sh.script.in文件该名为你的服务名称,这里改为NetWatchDog。
4.编辑NetWatchDog,把Application的相关信息改为如下:
APP_NAME="NetWatchDog" APP_LONG_NAME="NetWatchDog Application"
5.把你的程序的打包成jar文件,拷贝到$DOG_HOME/lib目录下,并把$WRAPPER_HOME/lib/libwrapper.so,$WRAPPER_HOME/lib/wrapper.jar文件也拷贝到$DOG_HOME/lib目录下面。
6.这步比较重要是成败的关键,把$WRAPPER_HOME/conf/wrapper.conf文件拷贝到$DOG_HOME/conf目录下(文档上面说的是wrapper.conf.in文件,但是我下载来的文件就是wrapp