Server starten per Java Runtime...

Dieses Thema im Forum "Technischer Support" wurde erstellt von Ich5003, 25. Februar 2013.

  1. Ich5003
    Offline

    Ich5003

    Registriert seit:
    9. Januar 2012
    Beiträge:
    341
    Minecraft:
    ich5003
    Hallo Leute,
    wie ihr ja alle wisst, gibt es bei windows die funktion:
    [Rechtsklick] --> Öffnen mit... --> Java(TM) Platform SE Binary
    so habe ich mal aus Spaß´eine Craftbukkit version gestartet. Der Server lief als Prozess, aber nicht als aktives Fenster, Konsole etc.
    nun wollte ich fragen wie man den Server ordnungsgemäß über die Konsole stoppen kann (also niht auf dem Server einloggen und "/stop" oder den Prozess im TaskManager killen.

    Würde mich über antworten freuen.
    MfG
    Ich5003
     
    #1
  2. Djdomrep
    Offline

    Djdomrep

    Registriert seit:
    23. Juni 2012
    Beiträge:
    35
    Ort:
    127.0.0.1
    Minecraft:
    djdomrep
    normal startet man nen server unter windows ja mit ner batch datei.
    wenn er bereits läuft dann geh ingame und mach /stop, danach starte den server über eine datei die du erstellst.

    geh in den ordner von deinem server und erstelle ne text datei -> nenne sie in "start.bat" um -> mach nen rechtsklick auf die datei und klick auf bearbeiten -> schreib das rein:
    Code (Text):
    1. java -Xms1024M -Xmx1024M -jar craftbukkit.jar -o true
    2. PAUSE
     
    #2
  3. Ich5003
    Offline

    Ich5003

    Registriert seit:
    9. Januar 2012
    Beiträge:
    341
    Minecraft:
    ich5003
    Haha danke, aber dass kenn ich schon, so ein Progamm hab ich schon deutlich verbessert (http://minecraft-server.eu/board/showthread.php?8887-Server-Launcher)

    aber gibt es eine Möglichkeit, ohne eine zusätlich Datei den server, wenn man ihn direkt mit java startet, zu beenden?
     
    #3
  4. Chrisliebaer
    Online

    Chrisliebaer

    Kurze Antwort: nein, nur ingame /stop

    Lange Antwort: Das Problem ist, dass Minecraft dafür selbst einen Weg bereitstellen müsse, dass es beendet werden kann. Ich hab das auch mal genauer getestet. Es ist nämlich so, dass das Betriebsystem einen Prozess mitteilen kann, dass er sich beenden soll (passiert z.B. beim runterfahren). Als nächstes Level kann das Betriebsystem dann den Prozess einfach abschießen, indem es ihm die Rechenzeit entzieht und den Speicher wieder freigibt(das kennst du vielleicht von "Sofort Beenden"). In wirklichkeit gibt es noch ein paar mehr Signale(so wird das genannt). Auf Windows kenn ich mich damit nicht so gut aus und hab das mal fix recherchiert.

    Jedenfalls ist es so, dass die Anwendung darauf reagieren muss und sich beenden muss. Und das macht Minecraft schlicht nicht. Ansonsten könntest du dem Programm mitteilen, dass es sich beenden soll. Wie man sowas auf Windows auslöst weiß ich nicht aber unter UNIX gehts für gewöhnlich mit dem Befehl "kill". Zur Verteidigung muss man allerdings sagen, dass es da scheinbar ein Problem gibt, dass man das mal eben in Java mitbekommt, wenn das Programm einen Terminierungsbefehl bekommt.

    Zusammenfassend: Das Betriebsystem sieht es vor, dass dem Programm 2 Changen gegeben werden. In der ersten darf es sich selbst beenden und wenn es dann nicht macht oder zu lange braucht, wird es beendet (und kann in dem Fall auch keine Daten mehr sichern). Da das aber eh ein Serverprogramm ist, kommt es eigentlich garnicht in frage, dass es einfach mal so über kill beendet wird. Für sowas schreibt man entsprechende Skripte, da die Gefahr einfach zu groß ist, dass das Betriebsystem beim runterfahren selbst hand anlegt und den Prozess kill und damit die Map ggf. zerstört.

    Falls Fehler drin sind, bitte korregieren, hab das mal fix schnell so zusammengeschrieben ohne es nochmal nachzulesen.
     
    #4
  5. flashy830
    Offline

    flashy830

    Registriert seit:
    30. Januar 2013
    Beiträge:
    61
    Ort:
    Lübeck
    Minecraft:
    flashback830
    als prozess läuft alles, egal ob mit oder ohne fenster.


    du kannst dir den server als dienst installieren.

    http://support.microsoft.com/kb/251192/de

    wenn du gewisse parameter mit gibst kannst du dann über die kommandozeile (neue cmd) au den dienst zugreifen und zb stoppen, saven etc.
     
    #5
  6. Ich5003
    Offline

    Ich5003

    Registriert seit:
    9. Januar 2012
    Beiträge:
    341
    Minecraft:
    ich5003
    Okay, danke für eure antworten, aber ich hab noch eine Frage:

    Wenn ich an den Prozess sende, er soll sich beenden (aber ihn nicht killen) stoppt er sich dann so , wie wenn ich /Stop eingeben würde?
     
    #6
  7. Chrisliebaer
    Online

    Chrisliebaer

    Nein, das ist von Minecraft nicht implementiert. Ich hab das mal getestet gehabt und im Minecraftserverlog stand nicht, von einem erfolgreichen stop.
     
    #7
  8. Ich5003
    Offline

    Ich5003

    Registriert seit:
    9. Januar 2012
    Beiträge:
    341
    Minecraft:
    ich5003
    Okay, danke für die antworten!
     
    #8
  9. flashy830
    Offline

    flashy830

    Registriert seit:
    30. Januar 2013
    Beiträge:
    61
    Ort:
    Lübeck
    Minecraft:
    flashback830
    Mit der PID (Prozess ID) kannst du an die console dein stop senden. So machen es beispielsweise auch die div. Webinterface's.
    ich glaub das wird nun aber zu komplex. Bleib einfach bei der 08/15 konsole.
     
    #9