Ich habe versucht, ein automatisiertes Backup-System für einen Minecraft-Server einzurichten, und ich habe Probleme mit dem Bildschirm, insbesondere wenn ich 'screen -r Sitzungsname -X "/ var / minecraft / somebatchfile"' verwende. Es passiert nichts.
Mein Prozessablauf ist im Moment ungefähr so:
screen -m -d -S minecraft /var/minecraft/bin/server_nogui.sh
Dadurch wird der Minecraft-Server ohne Probleme gestartet. Das Problem ist jedoch, dass selbst einfache Folgemaßnahmen wie diese fehlschlagen:
screen -r minecraft -X "stop"
Ich erhalte keine Fehlermeldung oder Erfolgsmeldung, und der Server trennt die Clients nicht und fährt herunter, wie es sollte. Ich nehme an, ich mache etwas falsch, aber ich weiß nicht was. Gibt es einen offensichtlichen Fehler, den ich mache? Ich habe die Manpage ein bisschen gelesen, aber ich habe kein Glück, es selbst herauszufinden.
quelle
ssh -t -i ~/.ssh/id_dsa server_user@server_address screen -r minecraft -X stuff "even other_server_name is getting in on the action! $(echo -ne '\r')"
Ich bin wirklich nicht gut mit Unix, leider: /Wie wir in dieser ähnlichen Frage festgestellt haben , hat der Bildschirm Probleme beim Senden von Schlüsseln an Sitzungen, die noch nie angehängt wurden. Wenn Sie jemals einen Anhang angehängt haben, wird der Standardfensterbereich auf Null gesetzt. Andernfalls schlägt er stillschweigend fehl, da die Tastenanschläge nicht in ein Fenster gelangen. Sie können dies vermeiden, indem Sie
-p 0
Ihrem Bildschirmbefehl ein Argument hinzufügen .Alternativ können Sie
tmux
stattdessen das viel besser benommene verwenden :Senden Sie dann dem Minecraft-Server den Befehl stop wie folgt:
Beachten Sie, dass die obige ^ M-Sequenz eine visuelle Darstellung einer realen Eingabe ist. Sie können dies auf dem Befehl wie durch Drücken von Ctrl+ erzeugen v Enter. Dies ist einfacher als das Senden des Wagenrücklaufs mithilfe der Echo-Anweisung in der Antwort von wag .
quelle