Kann man mit java einen linux screen starten?

3 Antworten

Hallo

ich habe ein Java Programm welches ein start script ausführen soll welches einen Minecraft Server starten soll.

Alleine schon diese Beschreibung klingt doch irrsinnig, findest Du nicht!?

Ein Programm das ein Script startet, was soll das bringen, welchen tieferen Sinn hat das? Weshalb willst Du das Script nicht einfach direkt ausführen oder machst es gleich über ein, wie von David3103 beschrieben, über einen Alias?

Java: ProcessBuilder pb = new ProcessBuilder("/home/minecraft/servers/mc1_9/start_server.sh"); Process p = pb.start();

Dazu kann ich nichts sagen weil ich kein Java spreche (und es auch nicht mag)

#!/bin/sh
BINDIR=$(dirname "$(readlink -fn "$0")")
cd "$BINDIR"
touch /home/minecraft/mc1_9-started && \
Screen -S test java -Xms2G -Xmx5500M -XX:MaxPermSize=512M -server -XX:ParallelGCThreads=2 -jar minecraft_server.jar && \
rm /home/minecraft/mc1_9-started
  1. Was soll readlink da anstellen, den Scriptnamen als Pfad benutzen?
  2. wozu die Datei mc1_9-started anlegen?
  3. Screen  ist falsch, es heißt screen
  4. Zum Aufruf selbst kann ich nichts sagen, kommt mir aber seltsam und sehr lang vor
  5. Jetzt wird die Datei wieder gelöscht, weshalb?

Linuxhase

Es soll bewirken dass man auf einer JSF Seite auf start klicken kann und dann der server startet.

Die Datei wird erstellt damit man ablesen kann ob der Server an ist und gelöscht wird sie erst wenn der screen abbricht oder beendet wird

0
@dragokaito

@dragokaito

Es soll bewirken dass man auf einer JSF Seite auf start klicken kann und dann der server startet.

Das macht man doch mit php , so jedenfalls macht es mein Sohn schon lange.

Die Datei wird erstellt damit man ablesen kann ob der Server an ist und gelöscht wird sie erst wenn der screen abbricht oder beendet wird

Dann doch lieber pidof oder ps in einer Schleife benutzen um zu prüfen ob ein Prozess läuft.

pidof PROGRAMMNAME
ps ax | grep PROGRAMMNAME

Linuxhase

1

Was soll das Java Programm denn bewirken? Soll es einfach nur das script ausführen? Dann kannst du das auch einfach übers Terminal starten. Wenn es dir zu lang ist, dann erstellt dir ein Alias.

$ gedit ~/.bashrc

Dort fügst du dann am Ende eine Zeile ein:

alias startServer[oder wie auch immer du es nennen willst]='sh /home/minecraft/servers/mc1_9/start_server.sh'

Jetzt kannst du das Script über den eingetragenen Namen aufrufen.

Es soll bewirken dass man auf einer JSF Seite auf start klicken kann und dann der server startet

0

Schön das ich die frage selbst beantworten muss!!!! Aber wer GOOGLEn kann wird fündig.

wenn man screen mit den Parametern d und m also -dm startet gehts

LG Jonas (der der die Frage gestellt hat)

Minecraft-Server (Invalid initial heap size: -Xms2048MB) Problem

Hallo,

ich habe Windows 7 Home Premium 64-bit und Java 64-bit, ich habe von Minecraft.net die craftbukkit.jar Datei in meinen Minecraft-Server-Ordner gezogen, und auch den Pfad angegeben: @ECHO OFF SET BINDIR=%~dp0 CD/D"%BINDIR%" "C:\Program Files\Java\jre1.8.0_20\bin\java.exe" -Xms2048MB -Xmx2048MB -jar craftbukkit.jar PAUSE Und dann kommt in dem CMD-Fenster: Invalid initial heap size: -Xms2048MB (siehe Bild)

Was ist falsch?

Danke im voraus. ;-)

MfG SLENDERMAN2OOO :)

...zur Frage

Wie erstellt man eine Shell zum Minecraft Server Starten (Spigot)

Wenn man einen Spigot Server auf einem Windows Rechner erstellen will kann man ja einfach eine Batchdatei erstellen die dann über Java den Server startet RAM zuweist etc. Kann mir Jemand vlt ein Startscript (ne Shell bei Linux) die auch auf Linux funktioniert ? Danke im vorraus (Hier mal ein Startcode für Windows: @ECHO OFF SET BINDIR=%~dp0 CD/D"%BINDIR%" "C:\Program Files (x86)\Java\jre1.8.0_25\bin\java.exe" -Xincgc -Xmx1G -jar craftbukkit.jar PAUSE

...zur Frage

Auto Restart Script für Minecraft Server (Linux)

Hey, Ich suche eine ./start.sh datei, die den Minecraft Server automatisch neu startet, wenn dieser gestoppt wird. Also wenn ich Zb. ingame /stop eingebe soll der Server automatisch neu starten. Meine aktuelle start datei: screen -S lobby java -Xmx1G -Xms1G -jar craftbukkit.jar Wäre nett wenn ihr mir helfen würdet :) Lg

...zur Frage

Gibt es eine möglichkeit, den benutzer währen eines shell-skriptes mehrfach zu wechseln (su passwort eingabe simulieren)?

Hallo liebe Communiy,

ich habe ein kleines Problem.. Aktuell versuche ich eine Hausaufgabe für ein Unifach zu automatisieren.

Ich schreibe ein Shell-Skript auf Ubuntu 14.10 mit dem man das Nutzungsverhalten mehrerer User innerhalb einer Shell simulieren kann. Dabei ist mir schon relativ früh aufgefallen, das die Passworteingabe mittels:

su [username]

nicht auf anhieb funktionieren will...

Das Ganze sieht im Teilausschnitt so aus:

su [username]

12345

cd /tmp

echo 'hier wird eine Testnachricht erzeugt' >> nachr-alice

exit

12345 soll das Passwort sein aber die Shell kann damit nichts anfangen. Ich erhalte nach dem Ausführen stetts einen Error von der Shell:

su:Authentication failure

aufgabe1.sh: line 2 12345: command not found

nachdem per exit der User wieder ausgeloggt wird, wird sich ein neuer User einloggen und das wechselt also im prinzip die ganze Zeit.

Hat jemand schon ein ähnliches Problem lösen können?

Außerdem sollte ich erwähnen das keine externen Pakete installiert werden können.

Vielen dank für eure Antworten :)

...zur Frage

Von ~$ auf ~# wechseln?

Wie wechselt man bei Shell-Programmen vom ~$ Prompt auf den ~# Root Shell Prompt?

...zur Frage

Wie kann ich unter Linux Ordnerinhalte als zip-Datei packen?

Der komplette Inhalt eines Ordners soll als Zip-Archiv gepackt werden.Mit zip -r beispieldatei.zip Pfad/zu/Ordner wird allerdings der Ordner selbst gepackt, sprich Ordnername/beispieldateien.Wie lautet der Befehl, wenn ich alle Dateien packen möchte, die sich in einem Ordner befinden?

...zur Frage

Was möchtest Du wissen?