Screen – Linux Programme im Hintergrund

Admin | geschrieben am | zuletzt bearbeitet am

Nach dem Video über den Teamspeak Musikbot haben mich viele gefragt, warum der Bot nicht mehr läuft, wenn sie PuTTY schließen. Die Antwort ist ganz einfach: Das Programm läuft in der Konsole. Ist die Konsole aus, ist auch das Programm aus. Mit screen kannst du Programme in den Hintergrund schieben und laufen lassen, auch wenn du nicht mehr per PuTTY eingeloggt bist.

screen – Das praktische Hilfsmittel

Zuerst musst du das Programm installieren. Das geht relativ einfach:

apt-get update
apt-get install screen

Die Installation musst du dann nur noch mich Y bestätigen und schon ist es auf deinem Linux Server installiert.

install screen

Wie funktioniert screen?

Einmal installiert kannst du screen für alles Mögliche verwenden. Es ist nichts weiter als ein zusätzliches Terminal, dass im Hintergrund weiter läuft, auch wenn du die Verbindung zum Server geschlossen hast. Du kannst also eine sogenannte screen-Session öffnen und darin Programme starten. Diese Session kannst du dann verlassen und sie läuft einfach im Hintergrund weiter.

Wie läuft das mit screen ab?

Ich möchte das gleich am Beispiel des Musikbots erklären. Du brauchst nur folgende Schritte ausführen und schon läuft der Musikbot im Hintergrund unbeirrt weiter.

screen

ACHTUNG: Screen funktioniert immer nur mit dem User, mit dem du dich auf den Server verbunden hast. Wenn du dich also mit root verbindest, musst du erst screen starten und dann den User wechseln.

Damit startest du eine neue Session, was nichts anderes ist als das gleiche Terminal, dass du vorher schon hattest, nur mit dem Vorteil, dass du es später in den Hintergrund scheiben kannst. Nun startest du einfach das Programm, dass dauerhaft im Hintergrund weiter laufen sollte. Zum Beispiel:

su musikbot
xinit .....

Wenn das Programm in der screen-Session läuft, kannst du diese mit Strg+A und Strg+D in den Hintergrund schieben (detachen). Halte einfach Strg gedrückt und tippe dann auf die Tasten „a“ und „d“. Danach solltest du die meldung bekommen, dass die screen-Session detached, also abgekapselt ist.

screen detach

Jetzt läuft dein Programm im Hintergrund und du kannst das Terminal (PuTTY) beenden.

Wie kannst du das Programm dann stoppen?

So killst du ein Programm in einer screen-Session

Die Listen an laufenden Sessions bekommst du mit

screen -ls

Wenn du nur eine Session hast, kannst du in diese mit

screen -r

zurückkehren. Sollten es mehrere sein, kannst du mit

screen -r [name]

in eine Bestimmte Session zurückkehren, wobei [name] der Name ist, den du vorher mit screen -ls angezeigt bekommen hast.

TIPP: Wenn du die Session mit „screen -S bot“ startest, gibst du der Session den Namen bot und kannst du später ganz einfach mit „screen -r bot“ wieder zurückkehren, ohne den Namen umständlich von „screen -ls“ abzutippen. (Danke an Tim)

Ich hoffe, ich konnte etwas Licht ins Dunkel bringen und du kannst jetzt Programme im Hintergrund laufen lassen. Bei Fragen stehe ich natürlich gerne zur Verfügung.

Geschrieben von Admin

Ich arbeite seit Version 1 mit Teamspeak Servern.

42 Kommentare zu “Screen – Linux Programme im Hintergrund”

    Alex sagt:

    Hallo,
    irgendwie startet mein Bot nicht ich habe alles nach anleitung gemacht aber er will einfach nicht starten ich habe mal was aus putty raus kopiert:

    2015/06/02 18:58:37 e29acd92 781ba1af INFO Starting instance ts3server://78.143.39.174?port=16750&nickname=TS3SB-Demobot&password=&channel=&channelpassword=
    2015/06/02 18:58:37 e29acd92 781ba1af INFO TSClient quit.
    2015/06/02 18:58:44 e29acd92 781ba1af INFO PLAYURL [admin] http://streaming210.radionomy.com:80/1234554321 OK
    2015/06/02 18:58:53 e29acd92 781ba1af WARN Could not delete from Profilesno such table: Profiles
    2015/06/02 18:58:53 e29acd92 781ba1af WARN Could not insert into Profiles-Tableno such table: Profiles
    2015/06/02 18:58:53 e29acd92 781ba1af WARN Could not delete from Profilesno such table: Profiles
    2015/06/02 18:58:53 e29acd92 781ba1af WARN Could not insert into Profiles-Tableno such table: Profiles
    2015/06/02 18:58:53 e29acd92 781ba1af WARN Could not delete from Profilesno such table: Profiles
    2015/06/02 18:58:53 e29acd92 781ba1af WARN Could not insert into Profiles-Tableno such table: Profiles
    2015/06/02 18:58:53 e29acd92 781ba1af WARN Could not delete from Profilesno such table: Profiles
    2015/06/02 18:58:53 e29acd92 781ba1af WARN Could not insert into Profiles-Tableno such table: Profiles
    2015/06/02 18:58:53 e29acd92 781ba1af WARN Could not delete from Profilesno such table: Profiles
    2015/06/02 18:58:53 e29acd92 781ba1af WARN Could not insert into Profiles-Tableno such table: Profiles
    2015/06/02 18:58:53 e29acd92 781ba1af INFO Starting instance ts3server://78.143.39.174?port=16750&nickname=TS3SB-Demobot&password=&channel=&channelpassword=
    2015/06/02 18:58:53 e29acd92 781ba1af INFO TSClient quit.

    Thomas sagt:

    Hallo Alex,

    Ich habe gesehen, dass der Bot jetzt schon drauf ist. Verbindungsprobleme kann es geben, wenn die Sicherheitsstufe nicht stimmt, der Name zu lang ist, oder die IP irgendwie blockiert ist.
    Die Meldung mit den Profiles macht beim ersten Start nichts aus.

    mfg Thomas

    jame sagt:

    ich habe ein Problem
    der bot startet ist aber gemutet

    CONSOLE

    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Applicationno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Application-Tableno such table: Application
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Profilesno such table: Profiles
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Profiles-Tableno such table: Profiles
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Profilesno such table: Profiles
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Profiles-Tableno such table: Profiles
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Profilesno such table: Profiles
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Profiles-Tableno such table: Profiles
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Profilesno such table: Profiles
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Profiles-Tableno such table: Profiles
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not delete from Profilesno such table: Profiles
    2015/06/17 14:43:56 1bef859f 09a27412 WARN Could not insert into Profiles-Tableno such table: Profiles

    Thomas sagt:

    Sieht nach einem Rechteproblem aus. Entweder du setzt die Rechte richtig, oder du installierst den Bot nochmal neu ganz genau nach der Anleitung.

    mfg Thomas

    jame sagt:

    habe ich ja schon
    ich habe den bot auch sogar mit root gestartet um es zu testen hat aber nicht geholfen

    Thomas sagt:

    Hast du sonst noch etwas installiert? Irgendwelche anderen Dienste, Panels, Webmin, Plesk, usw. Das kann manchmal Probleme machen. Ansonsten bitte an den Entwickler wenden über das Forum hier: https://forum.sinusbot.com/

    mfg Thomas

    jame sagt:

    ne habe ich nicht

    Patrick sagt:

    Hallo, ich habe das Problem dass der Bot bei mir im Screen nicht starten will. Habe es sogar mit root versucht.

    ich gehe so vor:

    Logge mich ganz normal bei PuTTy ein, dann wechsel ich mit „su bot“ zu dem User und gebe dann folgenden Befehl ein:

    screen xinit /opt/ts3soundboard/ts3bot — /usr/bin/Xvfb :1 -screen 0 800x600x16 -ac

    Ich erhalte dann folgende Meldung: Cannot open your terminal ‚/dev/pts/1‘ – please check.

    Woran kann das liegen?

    Wenn ich ganz normal mit root den Befehl
    screen xinit /opt/ts3soundboard/ts3bot — /usr/bin/Xvfb :1 -screen 0 800x600x16 -ac
    eingebe

    Thomas sagt:

    Versuch mal als root „screen“, „su bot“, „xinit….“, Strg+A, Strg+D

    mfg Thomas

    Fabian sagt:

    wenn ich das probiere es in den hintergrund zu verschieben passiert einfach nichts ^^.
    http://prntscr.com/7qf3ib Da passiert einfach garnichts.
    Da ich auf Email recht inaktiv bin könnten sie auf meinen teamspeak connekten. Blackstrike.de bin so gegen 18 uhr da.

    Fabian sagt:

    Okey ich habe es doch hinbekommen…

    Niklas sagt:

    Wie macht man den richtig ein Screen ich habs schon mehr mals versucht aber es klapt nicht wer gut wenn du mir es nochmal hier mit der Rheinfolge drunter schreiben kannst oder hast du Skype ?

    Thomas sagt:

    Hallo Niklas,

    Ich kann hier die Befehle nochmal hinschreiben, die im Artikel stehen, aber das wird dir nicht helfen. Poste bitte eine Fehlermeldung, oder irgend eine Erklärung was genau passiert, oder nicht funktioniert, dann helfe ich dir gerne.

    mfg Thomas

    Cyb3rb0y sagt:

    Hallo ich möchte meinen musikbot beim hoch fahrenen des servers mit starten lassen.
    Hab folgente Befehle in das Startscript geschreiben.

    screen
    su musikbot
    xinit /opt/ts3soundboard/ts3bot — /usr/bin/Xvfb :1 -screen 0 800x600x16 -ac

    es starte aber nicht.
    hab es dann mal von hand so ein gegeben da habe ich dann fest gestellt das ich wenn ich screen eingeben noch enter drücken muss.
    was muss ich hinter screen schreiben das er automatich diesen schreit überspringt?

    MfG Cyb3rb0y

    Thomas sagt:

    Genauso. Du drückst einfach Enter und dann den nächsten Befehl. Wenn der Musikbot läuft, dann drückst du Strg+A und Strg+D um screen zu verlassen und fertig.

    mfg Thomas

    flocke112 sagt:

    Hallo
    ich habe den sinusbot auf linux installt aber ich starte den und will einn innternet musik ablaufen lassen aber es geht nicht
    mfg flocke112

    Thomas sagt:

    Was bedeutet „es geht nicht“? Was probierst du genau und was passiert dann, bzw. passiert nicht?

    mfg Thomas

    Rasen sagt:

    xinit: unable to run server „X“: No such file or directory
    Use the — option, or make sure that /usr/bin is in your path and
    that „X“ is a program or a link to the right type of server
    for your display. Possible server names include:

    Xorg Common X server for most displays
    Xvfb Virtual frame buffer
    Xfake kdrive-based virtual frame buffer
    Xnest X server nested in a window on another X server
    Xephyr kdrive-based nested X server
    Xvnc X server accessed over VNC’s RFB protocol
    Xdmx Distributed Multi-head X server

    Thomas sagt:

    Du bist im falschen Ordner, oder hast den Pfad in der Config falsch eingestellt. Außerdem ist dieser Kommentar unter dem falschen Artikel. Ich nehme an, es geht um den Sinusbot.

    mfg Thomas

    Fabian sagt:

    Hallo,
    Ich habe folgendes Problem die MusikBots starten ohne Probleme nur sobald ich Putty schließe stoppen diese wenn ich das jetzt versuche mit Strg+A und Strg+D bekomme ich folgende Nachricht
    ^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A
    Wenn ich “ screen “ eingebe kommt folgendes

    Cannot open your terminal ‚/dev/pts/1‘ – please check.

    Thomas sagt:

    Gib exit ein um als user root zu arbeiten. Dann screen, dann su bot, dann den Bost starten und dann Strg+A und Strg+D, dann sollte es klappen.

    mfg Thomas

    Patrick sagt:

    habe hier jetzt einiges gelesen an kommentaren aber wenn ich versuche im ordner /opt/ts3soundboard als root: screen su bot xinit /opt/ts3soundboard/ts3bot — /usr/bin/Xvfb :1 -screen 0 800x600x16 -ac eingebe dann kommt als ausgabe: [screen is terminating]

    mfg Paddy

    Patrick sagt:

    okey schon gelöst… hat geholfen als user bot script /dev/null einzugeben und dann nochmal screen -S musikbot xinit…

    mfg Paddy

    Thomas sagt:

    Danke, dass du dir die Mühe gemacht hast, noch die Antwort zu posten! 🙂 Das hilft bestimmt dem nächsten.

    Oskar sagt:

    Wenn ich das bei meinem Musikbot probiere geht es nicht.

    Thomas sagt:

    Bitte beschreibe dein Problem etwas genauer. Was klappt nicht? Fehlermeldung? Was machst du genau? Dann kann ich dir wahrscheinlich weiterhelfen.

    mfg Thomas

    Oskar sagt:

    Und ich verstehe das was was jemand oben geschrieben hat nicht 🙂

    Oskar sagt:

    Wenn Strg + A und Strg + D dann kommt dieses ^A und egel ob ich script /dev/null eingebe oder nicht.

    Thomas sagt:

    Dann bist du nicht in einer screen Session, oder hast die falsche Distribution. Wenn du Debian, oder Ubuntu hast, musst du nur ganz genau die Anleitung befolgen. Versuch mal nur screen alleine, ob die Tastenkombi dann geht.

    mfg Thomas

    Aless sagt:

    Wie schließe ich den Bot wieder ?

    Thomas sagt:

    Mit
    screen -ls
    findest du den Namen der screen Session und mit
    screen -r [Session-Name]
    kannst du dich verbinden. Dann stoppst du den Bot mit Strg + X und mit exit die screen Session.

    mfg Thomas

    HerrMC sagt:

    Bei mir geht das nicht mit den screen. Bitte um deine Hilfe

    Thomas sagt:

    Wenn du das etwas genauer beschreiben kannst gerne. Welche Fehlermeldung kommt denn und an welchem Punkt?

    mfg Thomas

    Tim sagt:

    Servus,

    erstmal super Anleitung!

    Ich denke nur du hast einen kleinen Teil bei screen vergessen.

    Beim Anlegen einer Session ist dieser Befehl besser.
    „screen -S ts3sinusbot“

    und um die Session wieder aufzunehmen:
    „screen -r ts3sinusbot“

    Das erleichtert das wiederfinden sehr wenn man mehr als eine Session hat ;D
    Mit „screen -ls“ sieht das dann so aus:

    “ *****.ts3sinusbot (**/**/**** **:**:** PM) (Detached) “

    Tim

    Thomas sagt:

    Hallo Tim,

    Danke für die Info. Ich habe schon mal dran gedacht den Artikel zu erweitern. Die meisten, wollen mit dem Artikel ihren Musikbot starten und laufen lassen, wenn sie das Terminal schließen. Also hab ich es bewusst schnell und einfach gehalten. Natürlich wäre es besser screen noch ausführlicher zu erklären.
    Danke für den Tipp!

    mfg Thomas

    Jonas V. sagt:

    Guten Tag,
    Ich habe das alles nachgemacht und habe folgendes problem:
    Ich starte alles so: su bot, cd /opt/ts3soundboard,screen,Drücke leertaste, Drücke Leertaste,./ts3bot
    Dann ist das problem, dass keiner der Bots starten will. Woran liegt das?

    Thomas sagt:

    Passier gar nichts, oder kommt irgendeine Meldung? Bist du noch im richtigen Ordner nachdem du screen startest (/opt/sinusbot/)?

    mfg Thomas

    Jonas V. sagt:

    ***PROBLEM GELÖST***
    Trozdem Danke 😀

    Thomas sagt:

    Sehr gut, kannst du die Lösung auch posten, damit vielleicht jemand anders auch weiterkommt, wenn er/sie das gleiche Problem hat!? Wäre sehr nett 🙂
    Viel Spaß mit dem Sinusbot!

    mfg Thomas

    Pitt sagt:

    Danke Thomas lauft alles super war ganz einfach

    Thomas sagt:

    Gern geschehen 🙂

Kommentare geschlossen