Ich möchte, dass bei jedem Start des Servers eine JAR-Datei ausgeführt wird (wir verwenden einen VPS). Daher habe ich crontab mithilfe von crontab -e
und anschließendem Hinzufügen bearbeitet @reboot bash /home/bash/startserver.sh
. Aber ich bin noch nicht einmal an dem Punkt angelangt, an dem das Skript überhaupt funktioniert.
Hier ist mein Skript:
#!/bin/bash
screen -S bukkit
cd $HOME/server
java -jar bukkit.jar
Der Grund, den ich verwenden muss, screen
ist, dass wenn ich bukkit.jar starte, es in eine Konsole gelangt, in der ich weitere Befehle für dieses Programm eingeben kann (ich bin sicher, dass Sie alle mit Minecraft und seinen Servern auf dieser Site vertraut sind , haha), aber ich muss in der Lage sein, andere Befehle als root und für andere Programme auszuführen, während es ausgeführt wird, und sogar meine PuTTY-Sitzung schließen.
Das einzige Problem besteht darin, dass beim Ausführen dieses Skripts eine Bildschirmsitzung erstellt wird, die ID jedoch nicht aufgeführt ist screen -ls
, da die ID leer ist. Vielmehr muss ich gehen, /run/screen/S-root
um die ID zu finden und dann die typische screen -X -S $name quit
darauf zu verwenden.
Vielleicht ist das gar nicht möglich, oder vielleicht gibt es tatsächlich einen einfacheren Weg, dies zu tun (ich würde es einfacher lieben), aber ich kann nicht herausfinden, warum dies nicht funktioniert. Und wenn dies möglich ist, ist es dann möglich, sich einer Sitzung wieder anzuschließen, screen -S bukkit
wenn ein Bash-Skript ausgeführt wird? (Mehrere Fragen, denke ich, aber vielen Dank für Ihre Hilfe! (Klammern))
bukkit.sh
Skript in der Befehlszeile arbeiten. Überprüfen Sie als nächstes, ob diesscreen -S bukkit path/to/bukkit.sh
funktioniert. Überprüfen Sie als nächstes, ob diesscreen -d -m -S bukkit path/to/bukkit.sh
funktioniert. Zum Schluss Cron einrichten. Versuchen Sie zuerst das Einfachste und machen Sie kleine Schritte, damit Sie verstehen, welcher Schritt unterbrochen wird. Sagen Sie mir das und die Fehlermeldung, die Sie erhalten, wenn Sie Hilfe benötigen.Sie sollten
update-rc.d
wie folgt vorgehen, um den Dienst beim Booten einzuschalten:quelle