Autostart-Script Probleme mit screen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Rurdo1
Beiträge: 15
Registriert: 11.10.2016 01:52:00

Autostart-Script Probleme mit screen

Beitrag von Rurdo1 » 13.10.2016 19:01:22

Hallo!

Zuerst möchte ich sagen dass ich im Bereich Coding ein ziemlicher neuling bin, bis jetzt kenn ich nur die Grundlagen von HTML und gaaanz wenig C.
Scripts sind auch kein Problem, solange ich sie nicht komplett selbst schreiben muss :P
Derzeit bin ich dabei alle Dienste nach einem Serverneustart automatisch starten zu lassen - bis jetzt läuft auch alles, bis auf den Musikbot.

Als BS läuft Debian 8.

Nun möchte ich also ein Startscript für den Musikbot des Teamspeaks schreiben.
Allerdings scheitert es schon beim ersten Befehl - es erstellt keinen Screen.
Das Script sieht im Moment so aus:

Code: Alles auswählen

screen -d -S musikbot
su username <<'EOF'
screen -S musikbot -X stuff "xinit /home/username/musikbot/ts3bot -- /usr/bin/Xvfb :1 -screen 0 800x600x16 -ac"
EOF
exit 0
Zuerst sah es so aus:

Code: Alles auswählen

USER = username
su $USER -c "screen -d -S musikbot"
su $USER -c "screen -S musikbot -X stuff 'xinit /home/username/musikbot/ts3bot -- /usr/bin/Xvfb :1 -screen 0 800x600x16 -ac^M'"
exit 0
Da hatte ich aber das Problem dass er vom User zuerst ein Terminal angegeben haben wollte, was ich beim manuellen Starten immer mit "script /dev/null" gelöst habe - was aber im Script nicht funktioniert hat?

Nun bin ich bei der EOF methode. Aber was muss ich da eintragen dass der Screen auch erstellt wird? Ich mach da sicherlich einen richtig Peinlichen fehler...Aber was solls. (Die Rechte sind natürlich auf 755 gestellt)
Was hab ich übersehen?

Wäre wirklich toll wenn sich jemand meiner Anfängerprobleme annehmen könnte :)
Mfg

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: Autostart-Script Probleme mit screen

Beitrag von pferdefreund » 14.10.2016 08:56:41

Ist da auch am Anfang der '!/bin/bash oder andere Shell drin. Eventuell mal ergänzen und
#!/bin/bash -x als erste Zeile reinschreiben und manuell auf der Konsole starten. Eventuell gibt es eine Fehlermeldung.

uname
Beiträge: 12045
Registriert: 03.06.2008 09:33:02

Re: Autostart-Script Probleme mit screen

Beitrag von uname » 14.10.2016 09:02:32

Ist da auch am Anfang der '!/bin/bash oder andere Shell drin.
Nennt sich https://de.wikipedia.org/wiki/Shebang
Lass mal erst das ganze su-Zeug weg und starte es direkt mit dem richtigen Benutzer. Erst wenn das läuft solltest du versuchen es auf root und "su - user" umzustellen.

Rurdo1
Beiträge: 15
Registriert: 11.10.2016 01:52:00

Re: Autostart-Script Probleme mit screen

Beitrag von Rurdo1 » 14.10.2016 10:04:07

Klar, das Shebang hab ich drin. Im Syslog wird mir ja auch was ausgegeben - nur ziemlich komisch.

@uname

Aber wie soll denn ein Autostartscript im init.d Ordner mit Userrechten laufen? Da kann doch sowieso nur Root drauf zugreifen?
Ich würde es ja gern von einem Benutzer übernehmen lassen - aber 1) Siehe die Zeile hierdrüber und 2) Hab ich mit dem Benutzer Probleme den Screen zu öffnen (da er nach nem Terminal fragt)

uname
Beiträge: 12045
Registriert: 03.06.2008 09:33:02

Re: Autostart-Script Probleme mit screen

Beitrag von uname » 14.10.2016 10:35:41

Behebe erst mal das letzte Problem. Es muss irgendwie auch mit dem normalen Benutzer laufen.

Hier sind zwei unterschiedliche Ansätze. Probiere beide und suche dir einen davon aus. Poste über Erfolg und Misserfolg.
https://forum.sinusbot.com/threads/bot- ... Chren.204/

TomL

Re: Autostart-Script Probleme mit screen

Beitrag von TomL » 14.10.2016 14:27:45

Rurdo1 hat geschrieben:Aber wie soll denn ein Autostartscript im init.d Ordner mit Userrechten laufen? Da kann doch sowieso nur Root drauf zugreifen?
zu 1: ist doch nix besonderes, es sein denn, das Script erfüllt eine Aufgabe, die zwingend root-Rechte benötigt.... screen zu starten scheint mir nicht dazuzugehören.
zu 2: nö, da kann jeder drauf zugreifen, zumal bei den Files (bei mir) fast durchgängig "Other=X" gesetzt ist. Nur besitzt root als einziger ändern-Reche auf diese Dateien.
Rurdo1 hat geschrieben:Ich würde es ja gern von einem Benutzer übernehmen lassen - aber 1) Siehe die Zeile hierdrüber und 2) Hab ich mit dem Benutzer Probleme den Screen zu öffnen (da er nach nem Terminal fragt)
Wie uname bereits gesagt, lass einfach den Quatsch mit "su" und "sudo" sein. Debian Jessie unterstützt eine Lösung ohne diesen Unfug... endweder
  • 1. via init.d-Script und Service-Unit-Generator. Da ist root per default der entsprechende User (....man kanns aber trotzdem ändern)
  • 2. via normalen Script (sollte dann besser in /usr/local/bin liegen), welches via Service-Unit (ohne Generator) als root oder als User oder sogar als virtueller User laufen kann.... manuell oder auch beim Boot automatisch gestartet.

Rurdo1
Beiträge: 15
Registriert: 11.10.2016 01:52:00

Re: Autostart-Script Probleme mit screen

Beitrag von Rurdo1 » 14.10.2016 16:40:21

uname hat geschrieben:Behebe erst mal das letzte Problem. Es muss irgendwie auch mit dem normalen Benutzer laufen.
Mein gott... Das alles läuft so bei manueller Eingabe. Nur vom Script aus erstellt es keinen Screen. Im Syslog steht zwar dass der Befehl eingegeben wurde, aber
kurz darauf, wenn ich den Text in den Screen einfügen will sagt er mir dass er keinen Screen findet.
Der Typ im Link hat ja schon Probleme beim öffnen eines Screens ohne Script.. DAS funktioniert bei mir aber, es geht nur ums Script und warum es keinen Screen erstellt.

TomL

Re: Autostart-Script Probleme mit screen

Beitrag von TomL » 14.10.2016 17:00:13

Rurdo1 hat geschrieben:Mein gott... Das alles läuft so bei manueller Eingabe.
Darf ich mal kurz fragen, was Du erwartest, was passieren sollte, wenn Du es als Start-Script startest?

Das, was passieren muss ist ganz einfach.... mit dem Screen-Parameter -dmS wird Screen via init.d-Startscript von systemd als Daemon (und zwar) detached (!) gestartet. Das heisst, da passiert definitiv nicht das gleiche, als wenn man es manuelll startet, wie z.B. öffnen eines Terminalfensters, oder dass man ein offenes Terminalfenster vorfindet, wenn man sich angemeldet hat. Und außerdem sind Deine Screen-Parameter m.E. unvollständig. Und zweitens solltest Du einfach mal versuchen, ob Screen-Sessions nach dem Start vorhanden sind:

Code: Alles auswählen

screen -ls
und ob Du sie, sofern eine vorhanden ist, attachen kannst.

Code: Alles auswählen

screen -R 

Rurdo1
Beiträge: 15
Registriert: 11.10.2016 01:52:00

Re: Autostart-Script Probleme mit screen

Beitrag von Rurdo1 » 14.10.2016 19:36:45

Er hat mir dann immerwieder gesagt dass er keinen Screen findet.
Wie auch, wenn Root den Screen erstellt und der User dann drauf zugreifen soll. Da hab ich selbst nicht ganz nachgedacht.

Ich habs jetzt aber selbst gelöst.
Nachdem ich nun wieder alles mit "su user" mache und zwischen den Befehlen ne kurze Pause einbaue funktionierts tadellos...

Trotzdem danke für die Denkanstöße.

Antworten