Minecraftサーバーの自動バックアップシステムをセットアップしようとしていますが、特に'screen -r sessionname -X“ / var / minecraft / somebatchfile”'を使用すると、画面に問題が発生します。
私のプロセスフローは、現時点では次のようになっています。
screen -m -d -S minecraft /var/minecraft/bin/server_nogui.sh
これにより、Minecraftサーバーが問題なく起動します。ただし、問題は、このような単純なフォローアップでも失敗することです。
screen -r minecraft -X "stop"
エラーメッセージや成功メッセージが表示されず、サーバーが実際にクライアントを切断してシャットダウンすることはありません。私は何か間違ったことをしていると思いますが、何が起こっているのかわかりません。私が犯している明らかな間違いはありますか?マニュアルページを少し読みましたが、自分で理解することができません。
承認された回答:
パラメータ-X
を指定する必要があります 画面コード> コマンド、minecraft-serverコマンドを
screen
に「詰め込み」たいと思います セッション。
screen -r minecraft -p 0 -X stuff "stop $(printf 'r')"
printf
キャリッジリターンを送信すると、コマンド「stop」が実行されます。 -p0
文字が最初の画面ウィンドウに送信されることを確認してください。
ssh
で送信する場合 コマンドを""
で囲む必要があります ( ``
を使用することもできます 、ただし、コマンド置換はできません。
ssh -t -i ~/.ssh/id_dsa [email protected]_address "screen -r minecraft -X stuff "even other_server_name is getting in on the action! $(echo -ne 'r')""
!
に注意してください は予約語です。エスケープする必要があります。
ユーザーが生成した改行をコマンドに含めて実行することもできます:
ssh -t -i ~/.ssh/id_dsa [email protected]_address "screen -r minecraft -X stuff 'even other_server_name is getting in on the action!
'"
!
をエスケープする ここでは必要ありません。