zoukankan      html  css  js  c++  java
  • Java程序作linux服务并且开机自动启动[转]

    以有个java应用名称为test,打包为test.jar,程序入口为cn.com.ppnote.SocketServer。
    下面在linux的/opt下建立testapp目录,复制test.jar到/opt/testapp/lib目录下。

    1、下载Java Service Wrapper(目前版本wrapper-linux-x86-32-3.2.3), 解压。
    http://wrapper.tanukisoftware.org/
    复制srcinsh.script.in到/opt/testapp/bin目录,重命名为SocketServer
    复制wrapperin目录下的wrapper文件到/opt/testapp/bin目录
    复制srcconfwrapper.conf.in到/opt/testapp/conf目录,重命名为wrapper.conf
    复制srcliblib目录下3个文件到/opt/testapp/lib目录
    wrapper.so
    wrapper.jar

    2、修改/opt/testapp/bin/SocketServer文件
    APP_NAME="SocketServer"
    APP_LONG_NAME="SocketServer Application Server"
    WRAPPER_CMD="./wrapper"
    WRAPPER_CONF="../conf/wrapper.conf"
    赋予执行权限
    chmod 775 /opt/testapp/bin/SocketServer
    chmod 775 /opt/testapp/bin/wrapper

    3、修改/opt/testapp/conf/wrapper.conf文件
    wrapper.java.command=/opt/jdk1.6.0_02/bin/java
    使用WrapperStartStopApp,这样可以通过命令带start/stop来启动/停止程序。
    wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp
    #这里添加你用到的jar包文件,从1..n你自己全写上吧,不过wrapper是必须的
    wrapper.java.classpath.1=../lib/wrapper.jar
    wrapper.java.classpath.2=../lib/test.jar
    wrapper.java.classpath.3=/opt/jdk1.6.0_02/lib/dt.jar
    wrapper.java.classpath.4=/opt/jdk1.6.0_02/lib/tools.jar
    wrapper.java.library.path.1=../lib
    #这个就是你自己可执行程序的主类(MainClass),一般来说,就是包含public static void main的那个类
    wrapper.app.parameter.1=cn.com.ppnote.SocketServer
    wrapper.app.parameter.2=1
    wrapper.app.parameter.3=true
    wrapper.app.parameter.4=cn.com.ppnote.SocketServer
    wrapper.app.parameter.5=true
    wrapper.app.parameter.6=1
    wrapper.app.parameter.7=stop
    上面的配置里使用了WrapperStartStopApp,这样可以通过命令带start/stop来启动/停止程序。

    4、让SocketServer开机自动运行
    ln -s /opt/testapp/bin/SocketServer /etc/init.d/SocketServer
    ln -s /opt/testapp/bin/SocketServer /etc/rc0.d/SocketServer
    ln -s /opt/testapp/bin/SocketServer /etc/rc1.d/SocketServer
    ln -s /opt/testapp/bin/SocketServer /etc/rc2.d/SocketServer
    ln -s /opt/testapp/bin/SocketServer /etc/rc3.d/SocketServer
    ln -s /opt/testapp/bin/SocketServer /etc/rc4.d/SocketServer
    ln -s /opt/testapp/bin/SocketServer /etc/rc5.d/SocketServer
    ln -s /opt/testapp/bin/SocketServer /etc/rc6.d/SocketServer

    5、测试 执行命令:service SocketServer start|stop|restart|status
    程序运行时,Java Service Wrapper在/opt/testapp/bin/目录下产生wrapper.log日志,
    STATUS | wrapper | 2007/08/01 17:17:01 | --> Wrapper Started as Daemon
    STATUS | wrapper | 2007/08/01 17:17:01 | Launching a JVM...
    INFO | jvm 1 | 2007/08/01 17:17:09 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
    INFO | jvm 1 | 2007/08/01 17:17:09 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.
    INFO | jvm 1 | 2007/08/01 17:17:09 |
    INFO | jvm 1 | 2007/08/01 17:17:10 | 程序开始运行...
    INFO | jvm 1 | 2007/08/01 17:17:26 | Connection: Open
    ......

    附目录结构
    /opt/testapp/bin
    | SocketServer
    | wrapper
    | wrapper.log(程序运行时自动产生)
    /opt/testapp/conf
    | wrapper.conf
    /opt/testapp/lib
    | libwrapper.so
    | wrapper.jar
    | test.jar

  • 相关阅读:
    让UILabel具有链接功能,点击后调用safari打开网址
    自定义UITableViewCell上的delete按钮
    iOS7 SDK各种坑——手Q团队总结
    字符串转成NSDate类型,计算与当前时间的相差,年数,天数,时分秒
    AFNetworking 2.0 Migration Guide
    UIView Class Reference
    AFNetworking实现程序重新启动时的断点续传
    CI框架下JS/CSS文件路径的设置
    CI session的使用
    php调用QQ登录(第三方登录)
  • 原文地址:https://www.cnblogs.com/qiyebao/p/3770318.html
Copyright © 2011-2022 走看看