树莓派Java程序运行_树莓派上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
剛剛買了, 樹莓派, 準備做一些程序, 放到樹莓派上, 平時樹莓派上不接顯示器等各種設備,直接隨著adsl開關進行開關。 這樣一些java程序啟動就有些麻煩。
開 發過程中很多要獨立運行,他們并不會以web形式發布,傳統的做法是將其壓縮為jar包獨立運行,這種形式簡單易行也比較利于維護,但是一 旦服務器重啟或出現異常時,程序往往無法自行修復或重啟。解決服務器重啟的傳統做法是編寫一段shell腳本隨服務器啟動而運行,但是這樣做只是治標,那 么我們想尋求一種“治本”的方式該怎么辦呢?
Java Service Wrapper就輕松而簡單的為我們解決了這些問題。”Java
Service Wrapper”顧名思義,將我們的Java程序包裝成系統服務,這樣就可以隨著系統的運行而自動運行,當然Java Service
Wrapper(下面簡稱Wrapper)的功能絕不僅于此。
下載地址如下:
http://wrapper.tanukisoftware.com/doc/english/download.jsp
查看一些 樹莓派的 cpu類型, 查詢如下:
通過 cat /proc/cpuinfo 查詢可以知道 樹莓派是 arm類型的cpu,因此在下載頁面中
選擇如下圖的版本:
如上圖, 選擇 矩形和圓形交叉區域的 版本。
我們選擇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”);
}
}
僅僅打印一個信息
如下是最后設置完成后的目錄等結構
以有個java應用名稱為IigLinuxStartJavaServer,打包為linux.java.service.jar,程序入口為cn.iigrowing.linux.java.start.Main。
下面在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程序运行_树莓派上Java程序作为linux服务并开机自动启动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Request请求
- 下一篇: Linux时间date与timedate