我已經使用Java一點守護,我想運行它的Unix(例如Debian的5)下的服務。我已經讀過使用Java包裝器的可能性,但沒有其他更容易實現的選項嗎?我不能只使用一個Unix命令,如xxx java -jar program.jar
?的Java運行在Unix服務
回答
好吧,如果你想甚至可以運行Java程序,當你退出你的shell了,下面是最簡單的辦法:
$nohup java -jar program.jar &
考慮將stderr和stdout重定向爲命令的一部分。例如'nohup java .... 1>/dev/null 2>&1&' – JeremyP 2010-10-13 16:12:04
本文包含了一些有用的技巧運行Java應用程序作爲守護:
http://barelyenough.org/blog/2005/03/java-daemon/
或者,你可以看看在Apache共享守護進程的項目,儘管這需要本機代碼(在Unix和Win32支持):
你可以啓動它:
java -jar program.jar
Unix守護進程通常由init啓動或由/etc/init.d
或/etc/rc.d
中的腳本啓動,並在特定運行級別啓動 - 通常由/etc/rcX.d
中的軟鏈接啓動。 (其中X是預期的「運行級別」,通常是3.
我認爲debian正在轉向使用「upstart」,一個init-replacement。它使用/etc/init
中的配置文件來定義作業,而且它們很容易
守護進程傳統上會關閉stdin,sdtout和stderr,並在啓動時執行「雙叉」操作,以便從會話中分離出來並表示他們已準備好處理他們應該處理的任何事情這是不是真的有必要,只要守護程序不是從終端開始
如果你想要一個簡單的外殼包裝,開始你的程序。你只需要編寫一個小外殼S CRIPT:
#!/bin/sh
/full/path/to/java -jar /full/path/to/program.jar
...並使其運行(chmod 755)
您需要/etc/init.d
創建一個合適的腳本,並將其鏈接到/etc/rcX.d
目錄。該腳本應至少支持start
,stop
,並status
參數。在啓動過程中它應該運行使用相應的參數java
命令,可能通過nohup java <arguments> &
。那麼你應該保存你新啓動的進程的PID文件/var/run/yourservice.pid
。 stop
命令應讀取此PID文件並殺死此服務。 細節因分發而異,大多數發行版都提供了一些宏,使整個工作變得更簡單。最好查看/etc/init.d
中其他服務的示例以供分發。
此外: 如果您的服務沒有從其他計算機從網絡訪問,但會打開某個端口,使其不可用於防火牆。
如果您的服務處理一些「微妙」數據,最好添加另一個用戶並在您的/etc/init.d
文件中調用適當的sudo
命令。
- 1. 在unix服務器上運行基於java的webdriver腳本
- 2. 在Java EE服務器Exec的運行
- 3. 服務器運行java servlet
- 4. 運行Java throgh服務器
- 5. Ubuntu編譯的程序在Unix web服務器上運行
- 6. 從Django在服務器上運行Java
- 7. 在java中運行shell觀看服務
- 8. 在unix終端中運行java程序
- 9. 如何檢查JBoss是否在Unix服務器上運行?
- 10. 如何在unix服務器上運行mysqltuner腳本?
- 11. Java的定時服務運行多次
- 12. 當tomecat服務器運行時,然後我的java類運行
- 13. 運行Java文件服務Mac
- 14. 查找UNIX上是否運行進程(服務器)
- 15. 使用JAVA和UNIX運行Pig命令
- 16. 如何從java運行unix命令
- 17. 服務在後臺運行?
- 18. 在本地運行存儲在服務器上的java類
- 19. python unix服務庫
- 20. Java Web服務API,但是我無法在我的服務器上運行JVM
- 21. 獲取正在運行的服務(LINUX JAVA):如何僅解析服務名稱?
- 22. Java運行Win服務器上,蝙蝠運行包
- 23. Android的 - 在後臺運行 - 服務與標準的Java類
- 24. 在學校的unix服務器上運行時,URL.openStream()速度很慢
- 25. 想要在Jenkins的遠程Unix服務器上運行單元測試用例
- 26. 創建運行在Unix
- 27. 運行從服務
- 28. 如何控制正在運行的java服務
- 29. 如何在亞馬遜的EC2上運行Java服務器?
- 30. 在運行時提取字段值的Java服務
http://commons.apache.org/daemon/jsvc.html – 2010-10-13 10:22:00
檢查serverfault.com/superuser.com。系統可能會知道更多關於此(nohup,inittabs,cron等) – Jayan 2010-10-13 17:08:09