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

  • 相关阅读:
    Django auth组件
    Django 中间件实现用户认证与IP频率限制
    Django 中间件
    Django forms组件
    Django Cookie于Session
    Django分页器
    flask之route中的参数
    Flask之endpoint错误View function mapping is overwriting an existing endpoint function: ***
    Centos6.5 安装python2.7.14
    发布django项目
  • 原文地址:https://www.cnblogs.com/qiyebao/p/3770318.html
Copyright © 2011-2022 走看看