Saya telah mencoba menyiapkan sistem pencadangan otomatis untuk server minecraft, dan saya mengalami masalah dengan layar, khususnya saat menggunakan 'screen -r sessionname -X "/var/minecraft/somebatchfile"', tidak ada yang terjadi.
Alur proses saya agak seperti ini saat ini:
screen -m -d -S minecraft /var/minecraft/bin/server_nogui.sh
Ini memulai server minecraft tanpa masalah. Namun, masalahnya adalah bahkan tindak lanjut sederhana seperti ini gagal:
screen -r minecraft -X "stop"
Saya tidak mendapatkan pesan kesalahan atau pesan sukses, dan server tidak benar-benar memutuskan klien dan mematikan, seperti yang seharusnya. Saya berasumsi saya melakukan sesuatu yang salah, tetapi saya tidak tahu apa. Apakah ada kesalahan nyata yang saya buat? Saya sudah membaca halaman manualnya sedikit, tetapi saya tidak beruntung menemukannya sendiri.
Jawaban yang Diterima:
Anda harus memberikan parameter -X
sebuah screen
perintah, saya pikir Anda ingin "mengisi" perintah server minecraft ke screen
sesi.
screen -r minecraft -p 0 -X stuff "stop $(printf 'r')"
printf
mengirim carriage return, sehingga perintah "stop" dijalankan. -p 0
memastikan karakter dikirim ke jendela Layar awal.
Untuk mengirimkannya melalui ssh
anda harus menyertakan perintah di " "
(Anda juga dapat menggunakan ` `
, tapi itu tidak akan membiarkan Anda melakukan substitusi perintah).
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')""
Waspadalah terhadap !
adalah kata yang dilindungi undang-undang, Anda harus menghindarinya.
Dimungkinkan juga untuk memasukkan baris baru yang dibuat pengguna ke dalam perintah untuk menjalankannya:
ssh -t -i ~/.ssh/id_dsa [email protected]_address "screen -r minecraft -X stuff 'even other_server_name is getting in on the action!
'"
Melarikan diri dari !
tidak diperlukan di sini.