私はスクリプトを使用しましたここ起動および終了時にMinecraftサーバーを起動および停止するサービスを作成します。スクリプトはデフォルトでGNU画面でサーバーjarファイルを起動します(バックアップと更新も実行しますが、正常に動作します)。
これはサーバーを正常に起動しますが、サーバーにメッセージを送信してからコマンドを使用してサーバーを正常に停止するのではなく、突然停止します(システムの実行中にスクリプトが実行され、/stop
呼び出されたときに実行されるため)。sudo service minecraft stop
私はsudo update-rc.d minecraft defaults 20 01
サーバーが停止する最初のプロセスの1つであることを確認するためにこれを使用します。
シャットダウンが開始された後に表示される最初の4行は次のようになるため、これが機能していると言えます。
[ OK ] Stopped target Graphical Interface.
Starting Unattended Upgrades...
[ OK ] Stopped target Multi-User System
Stopping LSB: Minecraft server...
その後、停止中と停止中のメッセージがたくさんあります。この間、サーバーが突然停止し(クライアントが警告なしにすべて切断されます)、次の状況が発生します。
[******] A stop job is running for LSB: Minecraft server (17s / 5min)
この秒は通常約17秒まで続き、最後のいくつかの画面にはシステムがシャットダウンする前の情報が表示されます。
これは、サービスがシャットダウンプロセスの最初に停止することを「通知しますが」システムがシャットダウン中に完了するのに時間がかかることを意味すると仮定します(サーバーが警告を送信、待機、保存するなど)。スクリプトがこれを実行するのを待っています。他のサービスが停止し、警告メッセージが表示される前に、すべてのクライアントの接続が切断されます。追加してみ$network
ましたがRequired-Stop
役に立ちませんでした。
私がしなければならないことは、他のサービスを同時に停止せず、すぐにサービスを停止させることです。どうすればいいですか?
XenServerでUbuntu 15.04を使用しています。
完全終了ログの表示ここ。