Screen cannot exec (Screen is terminating)

DominicFredh

New Member
Hallo,

ich will meinen Ts3 Querybot (java) starten mit dem befehl: screen -s Support java -jar SupportSystem.jar
danach kommt die Fehlermeldung "Screen cannot exec "Support" Datei oder Verzeichnis konnte nicht gefunden werden.

ich bitte um hilfe.

mfg
Dominic
 

d3p

Blog Benutzer
Was für eine Shell definierst du da denn bitte?



-s

sets the default shell to the program specified, instead of the value in the environment variable $SHELL (or "/bin/sh" if not defined). This can also be defined through the "shell" .screenrc command.
 

mr_brain

Registered User
Vermutlich ist nicht das kleine "s", sondern das große "S" gemeint. Das würde dann auch Sinn machen. Anstatt Shell wäre dann nämlich die Sessionbezeichnung gemeint.

Probier halt mal
screen -S Support java -jar SupportSystem.jar
 

DominicFredh

New Member
Vermutlich ist nicht das kleine "s", sondern das große "S" gemeint. Das würde dann auch Sinn machen. Anstatt Shell wäre dann nämlich die Sessionbezeichnung gemeint.

Probier halt mal
screen -S Support java -jar SupportSystem.jar
Genau der Shell ist die Sessionbezeichnung des Screens, mit dem Großen oder kleinen S geht es auch nicht, kannn es sein das ich im Code etwas falsch gemacht habe ?


Java:
public static void main(String[] args) {
        config.setHost("XX.XX.XX.XX.XX");
        config.setFloodRate(FloodRate.UNLIMITED);
        config.setDebugLevel(Level.ALL);
        query.connect();
        api.login("serveradmin", "XXXXXXXX");
        api.selectVirtualServerByPort(9987);
        api.setNickname("JND-ControlBot");
        System.out.println("Der Bot ist gestartet");
        Events.loadEvents();
        updateSupport();
        updateWeiterleitung();
        upadateTeamler();
        System.out.println("Bot hat fertig geladen!");
    }
 

mr_brain

Registered User
Hast du denn mal probiert ohne Screen mal zu starten und zu prüfen, ob das Java-Programm denn überhaupt läuft?
 

greystone

Member
Starten Deines Befehls im Detached Mode:

Code:
screen -S support -d -m /path/to/java -jar /path/to/SupportSystem.jar
Evtl. nochmal in ein Wrapper-Shell-Script packen, falls das Java-Programm erwartet, in einem bestimmten Verzeichnis gestartet zu werden. Also mit einem cd vor dem Start.
 
Last edited:

DeaD_EyE

Blog Benutzer
Öffne einfach einen screen und dann starte dein Java-Programm mal manuell im Screen.
Und das beachten, was greystone schrieb.
 

greystone

Member
Ach ja: Es kann ja natürlich auch sein, dass Deine Umgebung mit Screen anders ist, als wenn Du es interaktiv startest.

D. h. andere / bzw. nicht gesetzte Umgebungsvariablen und speziell auch der Suchpfad(PATH). In dem erwähnten Wrapperskript kannst Du deswegen auch ans Ende nochmal einen "sleep 120" packen, so dass Du sehen kannst, ob sich Deine Java-Anwendung direkt wieder beendet und was für eine Fehlermeldung da vielleicht noch steht.
 

DominicFredh

New Member
Selbst wenn ich nur "screen -s Support" eingebe bekomme ich ein Fehler, aber andere Screens laufen will sie aber net beenden sonst gehen die auch nicht.


Also muss es ja ein Problem beim screen Starten/erstellen geben oder?
 

playeffect.de

New Member
Welche Fehlermeldung erhältst du denn?
Hast du mal versucht die Session unter einem anderen Namen zu starten? Nur um auszuschließen dass es an dem "S" bei Support hängt.
 

DominicFredh

New Member
Fehlermeldungen:
1: Cannot exec 'Support': Datei oder Verzeichnis nicht gefunden
2: [Screen is terminating]

aber ich kann halt auch nicht den screen "screen -s asda" starten
 

greystone

Member
Du verwendest immer noch "-s" (kleines s). Das ist die falsche Option! Wenn Du den Sitzungsnamen spezifizieren möchtest: Dafür ist "-S" (grosses S) vorgesehen.
 
Last edited:

playeffect.de

New Member
Du verwendest ein kleines s anstatt einem großen S!

screen --help
-s shell Shell to execute rather than $SHELL.
Wenn du screen -s benutzt wird eine Shell erwartet sowas wie /bin/bash also
screen -s /bin/bash -S sessionName java -jar Support.jar
Schließe alle offenen SSH Sessions.

Folgender Command ist normalerweise ausreichen:
screen -dmS sessionName java -jar Support.jar
 

DominicFredh

New Member
Ah!

also 1. Fehler war das ich „screen -s“ gemacht habe, das heißt natürlich „screen -S“(dieser Fehler ist nur entstanden weil ich es manuell versucht habe und nicht über ein Startscript)
Und der andere Fehler war das ich das Programm falsch Exportiert habe deswegen ging es lokal aber nicht auf dem Sever.

Ich bedanke mich bei allen.
Vielen Dank

mfg
Dominic P.
 
Top