使用 Java Service Wrapper 將Java程序在樹莓派上部署成系統服務 過程中碰到的坑。。。

最近有個需求,需要將Java的程序在樹莓派上部署成服務,就準備使用Java service Wrapper。上網參考了一下別的文章,但是其中也碰到了不少的坑,特記錄下來,希望能幫助到別的童鞋。。。
主要的過程可以參考這篇文檔,我主要是記錄一下這篇文章沒有提到的問題
Java Service Wrapper 將Java程序部署成系統服務

  • Java Service Wrapper 版本的問題

    Java Service Wrapper 版本分三種,Professional,Standard,Community三個版本,前兩個版本是收費的,第三個版本纔是免費的。
    樹莓派是32位系統,CPU的架構是armhf。

  • 第三方動態庫的配置

    在Java開發的過程中,有時候會用到C提供的一些NATIVE接口,這個時候需要C的so動態庫。這些動態庫需要在wrapper.conf文件中進行配置

#Java Library Path (location of Wrapper.DLL or libwrapper.so)
這個段落中添加第三方so所在的文件夾

wrapper.java.library.path.1=…/lib
wrapper.java.library.path.2=…/src/olami_lib

其中path.1是wrapper自己的lib庫的地址。自己的可以在下面繼續添加。

  • 程序的入口

程序的入口需要配置成自己Java程序的主類
Java Main class,也就是程序入口
#該類需要實現WrapperListener 接口並保證WrapperManager 得到初始化
wrapper.java.mainclass=com.xxx.main

  • 程序不斷重啓
    Java服務配置好以後,會發現Java程序會不斷的重啓。這是因爲wrapper會和JVM不斷的通信,檢查JVM是否或者。如果你的Java程序休眠了或者通信失敗了,wrapper就會通知進程掛起,然後再試圖重啓Java程序。解決辦法是在wrapper.conf文件中設置
    wrapper.ping.timeout=0
    wrapper.startup.timeout=0
    這兩個值默認是30

參考:https://stackoverflow.com/questions/20718058/java-service-is-restarted-4-or-5-times

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章