2012-02-09 5 views
1

これは私のための質問のように聞こえるが、私はそれに尋ねる必要がある。ソケットサーバーとしてJavaクラスを実行する方法

私はポート21トラフソケットを聞いて小さなファイルサーバーアプリケーションをコーディングしました。バイト配列を受け取り、ファイル(通常はjpgファイル)を書き込み、IDE上でうまく動作します。

今私はそれをサーバーに永続的に実行したいので、リモートアプリケーションは私のサーバーアプリケーションがリッスンしているポート21にバイト配列を送ることができます。

物理サーバOSはCentOS 6ですが、私はUbuntuとlinuxの多くのレッドハーフフレーバー(あなたはクラウドサーバを知っています)を設定できます。

したがって、このJavaクラスをサービスとして維持するためにデーモン(多分シェルスクリプト)をコード化できますか? は私が書くことができると言う:

service jMyFileApp {start|stop|restart|status} 

私はGoogleに依頼する方法を知らない...私は一種の失われたよ、それをグーグルで試みたが、:S

+2

[Javaのデーモン:Choices?](http://stackoverflow.com/questions/7596434/java-daemon-under-linux-choices) –

答えて

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下にあること。ですから、基本的にTomcatを起動して停止する方法を理解しているシェルスクリプトと、サービススクリプトがそれらに委譲しています。

あなたのカスタムサーバを起動/停止することができるシンプルなシェルスクリプトを提供してください(これはおそらく最も難しい部分です)、サービススクリプトからそれらを呼び出すことができます(すなわち、vi /etc/init.d/jMyFileApp、Tomcatカスタムスタートアップスクリプトを指すように適切なパスを編集してからchmod a+rx /etc/init.d/jMyFileAppを入力してください)。

+0

ありがとうございます:) – RicardoE

関連する問題