2012-02-09 53 views
1

這聽起來像是一個noob問題,但我需要問它。如何運行一個java類作爲套接字服務器

因此,我編寫了一個小型文件服務器應用程序,它監聽端口21槽接口 它接收字節數組,然後寫入文件(通常是jpg文件),在IDE上效果很好。

現在我想把它永久運行在服務器上,以便遠程應用程序可以將字節數組發送到服務器應用程序正在監聽的端口21。

物理服務器操作系統是CentOS 6,但我可以設置Ub​​untu和許多Linux的紅帽口味(你知道雲服務器)。

那麼,我該如何編寫一個守護進程(也許是一個shell腳本)來保持這個java類作爲一個服務? 說我可以這樣寫:

service jMyFileApp {start|stop|restart|status} 

我試着用搜索引擎,但,我有點失去了......我不知道如何問到Google:S

+2

請參閱[Linux下的Java守護進程:選擇?](http://stackoverflow.com/questions/7596434/java-daemon-under-linux-choices) – 2012-02-09 23:15:13

回答

2

這是我要用到的服務腳本啓動和停止Tomcat(這基本上等同於你正在嘗試做的):

#! /bin/sh 
case "$1" in 
start) /usr/local/jakarta/tomcat/bin/startup.sh ;;  
stop) /usr/local/jakarta/tomcat/bin/shutdown.sh ;; 
restart) /bin/sh $0 stop 
/bin/sh $0 start ;; 
*) echo "Usage: $0 {start|stop}" 
exit 1 ;; 
esac 

也就是說/etc/init.d/tomcat下。所以基本上有一些shell腳本可以理解如何啓動和停止Tomcat,而服務腳本只是委託給這些腳本。

在你的情況,只是提供一些簡單的shell腳本,可以啓動/停止您的自定義服務器(這可能是最具挑戰性的部分),然後從服務腳本(即vi /etc/init.d/jMyFileApp,複製調用它們/粘貼的Tomcat上面的腳本,根據需要編輯路徑以指向您的自定義啓動腳本,然後chmod a+rx /etc/init.d/jMyFileApp)。

+0

非常感謝:) – RicardoE 2012-02-10 00:25:54