私は、jarファイルサーバPC上(サーバとしてPCの行為)、はA.jar持っているために聞くことが無限ループを実行しますTCPIP接続はクライアントPCです。接続が確立された場合には、クライアントPCはサーバPCにzipファイルを送信することができ、はA.jar は、別のフルスクリーン表示のjavaファイルを開始しますこれ、bは、それを解凍し、そのジップでスクリプトを実行します。 ja。
はA.jarもb.jarがすでに存在する場合は、起動中に b.jar を実行しようとしています。
アプローチ1:
私は(それは無限ループだと、システムが起動中に永遠にハングアップする、はA.jarを開始する/etc/init.d/のでスクリプトを書きました端末の画面で、GUIにも入ることはできません)。正常に起動するには、そのスクリプトを削除するためにシングルユーザーモードで起動する必要があります。
アプローチ2:私はそれが私がサーバPCに接続することができ、接続のために耳を傾け、正常に実行され、デーモンとしてはA.jar を実行するスクリプトを変更し
とzipファイルを送信します。
問題: b.jar
- は、実行許可とファイルがすべて正しく設定されている場合にも実行されません。
- zipファイルを送信した後、b.jarが実行されました(はデバイスに接続されており、そのデバイスはを有効にしているため)。しかし、端末を介して実行された場合と同様に、全画面表示は表示されません。
私は、このように、それはかもしれない少し複雑なようだが、 b.jar は常に更新され、更新後にするとき、オートスタートなければならないので、そう
を行う理由a.jarを使用して、新しいバージョンfo b.jarを解凍して実行します。
b.jarは、シリアルポートにアクセスする必要があるため、rootとして実行する必要があります。
(サーバPCは、このように起動時に b.jar を開始するために必要であり、リモートでを制御し、自動化する必要がある)
質問
は私が知っているかもしれませんさこれを行う良い方法がありますか?または私は何を間違っていたのですか?誰かが起動時に起動するためのより良いスクリプトを表示できますか?