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.
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.
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.
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.
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
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
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
habe ich ja schon
ich habe den bot auch sogar mit root gestartet um es zu testen hat aber nicht geholfen
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
ne habe ich nicht
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
Versuch mal als root „screen“, „su bot“, „xinit….“, Strg+A, Strg+D
mfg Thomas
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.
Okey ich habe es doch hinbekommen…
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 ?
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
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
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
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
Was bedeutet „es geht nicht“? Was probierst du genau und was passiert dann, bzw. passiert nicht?
mfg Thomas
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
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
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.
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
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
okey schon gelöst… hat geholfen als user bot script /dev/null einzugeben und dann nochmal screen -S musikbot xinit…
mfg Paddy
Danke, dass du dir die Mühe gemacht hast, noch die Antwort zu posten! 🙂 Das hilft bestimmt dem nächsten.
Wenn ich das bei meinem Musikbot probiere geht es nicht.
Bitte beschreibe dein Problem etwas genauer. Was klappt nicht? Fehlermeldung? Was machst du genau? Dann kann ich dir wahrscheinlich weiterhelfen.
mfg Thomas
Und ich verstehe das was was jemand oben geschrieben hat nicht 🙂
Wenn Strg + A und Strg + D dann kommt dieses ^A und egel ob ich script /dev/null eingebe oder nicht.
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
Wie schließe ich den Bot wieder ?
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
Bei mir geht das nicht mit den screen. Bitte um deine Hilfe
Wenn du das etwas genauer beschreiben kannst gerne. Welche Fehlermeldung kommt denn und an welchem Punkt?
mfg Thomas
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
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
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?
Passier gar nichts, oder kommt irgendeine Meldung? Bist du noch im richtigen Ordner nachdem du screen startest (/opt/sinusbot/)?
mfg Thomas
***PROBLEM GELÖST***
Trozdem Danke 😀
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
Danke Thomas lauft alles super war ganz einfach
Gern geschehen 🙂