树莓派上Java程序作为linux服务并开机自动启动
http://www.iigrowing.cn/shu_mei_pai_shang_java_cheng_xu_zuo_wei_linux_fu_wu_bing_kai_ji_zi_dong_qi_dong.html
Java Service Wrapper就轻松而简单的为我们解决了这些问题。”Java
Service Wrapper”顾名思义,将我们的Java程序包装成系统服务,这样就可以随着系统的运行而自动运行,当然Java Service
Wrapper(下面简称Wrapper)的功能绝不仅于此。
![](http://www.iigrowing.cn/wp-content/uploads/2015/06/java-linux-services-cpu-001.png)
![](http://www.iigrowing.cn/wp-content/uploads/2015/06/java-linux-services-002.jpg)
我们选择Linux x86版本下载,解压后目录组成如下图所示:
编写一个最简单的java程序
package cn.iigrowing.linux.java.start;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(“hello”);
}
}
仅仅打印一个信息
如下是最后设置完成后的目录等结构
下面在linux的/usr/local下建立IigLinuxStartJavaServer目录,复制linux.java.service.jar到/usr/local/IigLinuxStartJavaServer/lib目录下。
1、下载Java Service Wrapper(目前版本wrapper-linux-x86-32-3.2.3), 解压。
http://wrapper.tanukisoftware.org/
复制src\bin\sh.script.in到/usr/local/IigLinuxStartJavaServer/bin目录,重命名为IigLinuxStartJavaServer
复制wrapper\bin目录下的wrapper文件到/usr/local/IigLinuxStartJavaServer/bin目录
复制src\conf\wrapper.conf.in到/usr/local/IigLinuxStartJavaServer/conf目录,重命名为wrapper.conf
复制src\lib\lib目录下文件到/usr/local/IigLinuxStartJavaServer/lib目录
wrapper.so
wrapper.jar
2、修改/opt/testapp/bin/SocketServer文件
APP_NAME=”IigLinuxStartJavaServer”
APP_LONG_NAME=”IigLinuxStartJavaServer Application Server”
WRAPPER_CMD=”./wrapper”
WRAPPER_CONF=”../conf/wrapper.conf”
赋予执行权限
chmod 775 /usr/local/IigLinuxStartJavaServer/bin/IigLinuxStartJavaServer
chmod 775 /usr/local/IigLinuxStartJavaServer/bin/wrapper
3、修改/opt/testapp/conf/wrapper.conf文件
使用WrapperStartStopApp,这样可以通过命令带start/stop来启动/停止程序。
wrapper.java.mainclass=cn.iigrowing.linux.java.start.Main
#这里添加你用到的jar包文件,从1..n你自己全写上吧,不过wrapper是必须的
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../lib/test.jar
wrapper.java.classpath.3=../lib/linux.java.service.jar
wrapper.java.library.path.1=../lib
#这个就是你自己可执行程序的主类(MainClass),一般来说,就是包含public static void main的那个类
上面的配置里使用了WrapperStartStopApp,这样可以通过命令带start/stop来启动/停止程序。
4、让SocketServer开机自动运行
ln -s /usr/local/IigLinuxStartJavaServer/bin/IigLinuxStartJavaServer /etc/init.d/IigLinuxStartJavaServer
ln -s /usr/local/IigLinuxStartJavaServer/bin/IigLinuxStartJavaServer /etc/rc0.d/IigLinuxStartJavaServer
ln -s /usr/local/IigLinuxStartJavaServer/bin/IigLinuxStartJavaServer /etc/rc1.d/IigLinuxStartJavaServer
ln -s /usr/local/IigLinuxStartJavaServer/bin/IigLinuxStartJavaServer /etc/rc2.d/IigLinuxStartJavaServer
ln -s /usr/local/IigLinuxStartJavaServer/bin/IigLinuxStartJavaServer /etc/rc3.d/IigLinuxStartJavaServer
ln -s /usr/local/IigLinuxStartJavaServer/bin/IigLinuxStartJavaServer /etc/rc4.d/IigLinuxStartJavaServer
ln -s /usr/local/IigLinuxStartJavaServer/bin/IigLinuxStartJavaServer /etc/rc5.d/IigLinuxStartJavaServer
ln -s /usr/local/IigLinuxStartJavaServer/bin/IigLinuxStartJavaServer /etc/rc6.d/IigLinuxStartJavaServer
5、测试 执行命令:service IigLinuxStartJavaServer start|stop|restart|status
程序运行时,Java Service Wrapper在/usr/local/IigLinuxStartJavaServer/bin//目录下产生wrapper.log日志,
树莓派上Java程序作为linux服务并开机自动启动的更多相关文章
- Java程序作linux服务并且开机自动启动[转]
以有个java应用名称为test,打包为test.jar,程序入口为cn.com.ppnote.SocketServer. 下面在linux的/opt下建立testapp目录,复制test.jar到/ ...
- 使用Java Service Wrapper将java程序作为linux服务并且开机自动启动
以java应用程序为例,打包为tianlong.jar,程序入口为tianlong.QueueTest. 下面在linux的/opt下建立tianlong目录,复制tianlong.jar到/opt/ ...
- Linux上java程序的jar包启动通用脚本(稳定用过)
Linux上java程序的jar包启动通用脚本如下: #! /bin/sh export LANG="zh_CN.GBK" SERVICE_NAME=` .sh` SCRIPT_N ...
- paip.注册java程序为LINUX系统服务的总结。
paip.注册java程序为LINUX系统服务的总结. ////////////////实现开机启动. 标准方法是按照/etc/init.d/下面的文件,修改一下:然后chkconfig xxx on ...
- 如何注册java程序为windows服务
如何注册java 程序为windows 服务 最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可视化界面的可以设置具体的关机时间的软件.由于我想编写的关机程序是运行在别人机器上,只能让该机器在 ...
- Linux下Tomcat开机自动启动
linux下tomcat开机自动启动有两种方法,一种是简单,一种是复杂而又专业的,使用shell脚本要实现,我们一般推荐shell脚本启动方式.下面我们分别介绍这两种方法. 1.shell脚本启动 众 ...
- C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)
#region//开机自动运行 private void CB_Auto_CheckedChanged(object sender, EventArgs e) {//CB_ ...
- java 程序从linux 上接收不可见字符
近期在写一个简单的小java程序,希望在运行java 程序时,从shell 中接收参数,并且参数的内容为不可见字符. 开始时还觉得可以使用"\"之类的转义符来写,后来发现java程 ...
- Java Service Wrapper将java程序设置为服务
有时候我们希望我们java写的程序作为服务注册到系统中,Java Service Wrapper(下面简称wrapper)是目前较为流行的将Java程序部署成Windows服务的解决方案, 本文将讨论 ...
随机推荐
- winform中ComboBox实现text和value,使显示和值分开,重写text和value属性
winform的ComboBox中只能赋值text,显示和值是一样的,很多时候不能满足根本需要,熟悉B/S开发的coder最常用的就是text和value分开的,而且web下DropDownList本 ...
- PHP MYSQL单向同步方案
项目上有个需求,需要从外网服务器的MYSQL同步到本地服务器上. 思路如下: 1 在外网MYSQL中创建表 table_change_log ,记录表中数据的更改记录. DROP TABLE IF E ...
- IIS 7.0 部署MVC
开发的MVC 3.0 项目,在部署服务上还是与需要花一点功夫,这里把遇到的问题罗列出来. 本文主要介绍IIS 7.5中安装配置MVC 3.0的具体办法! 部署必备: Microsoft .net Fr ...
- (C++) Include 文件
1. <> 和 "" 的区别. 2. 有个技巧就是把.h 文件放到 stdafx.h 中,这样很多时候,就不用重复的引用头文件了..因为 stdafx.h 基本上每个头 ...
- java 泛型编程学习
先发布,以后有空再修改... 第一次看到<java核心技术卷一>中关于泛型这部分的时候感觉很复杂,似乎有说不完的约束条件,让人难以理解.当时只是囫囵吞枣般过了一遍,也没有看出个什么来.现在 ...
- JVM实用参数(八)GC日志
本系列的最后一部分是有关垃圾收集(GC)日志的JVM参数.GC日志是一个很重要的工具,它准确记录了每一次的GC的执行时间和执行结果,通过分析GC日志可以优化堆设置和GC设置,或者改进应用程序的对象分配 ...
- 2015-06-02 关于mvc表格点击按钮自动添加一行<tr></tr>
前台代码: @using (Html.BeginForm("ContactPerson", "User", FormMethod.Post, new { @cl ...
- XE6 & IOS开发之开发者账号、苹果证书(3):关于在XE6中使用苹果证书的简单介绍
网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 1.关于在XE6中使用苹 ...
- hrbust1279
http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1279 int main() { l ...
- 牛客网程序员面试金典:1.2——原串翻转(java实现)
问题描述: 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量). 给定一个string iniString,请返回一个string,为翻转后的字符串. ...