/srv/irclogs.ubuntu.com/2022/09/11/#ubuntu-de.txt

=== Toddy69 is now known as Guest131
=== sem2peie- is now known as sem2peie
=== sem2peie- is now known as sem2peie
=== sem2peie- is now known as sem2peie
dreamonWürde gerne eine tmux session, beim reboot starten wollen. Habe es versucht mit crontab -e →  @reboot $HOME/profile; /usr/bin/sleep 20; /usr/bin/bash /home/pi/start-tmux-Apps.sh17:46
dreamonLeider passiert da gar nichts. 17:47
dreamonwährend das script selbst in der Konsole funktioniert 17:48
dreamonhab nur noch >2 log gemacht. das log ist "open terminal failed: not a terminal"17:54
_moep_dreamon: ich glaube das problem ist bei dem bash befehl. du musst da noch sagen "spawn mir einen neuen prozess/ein neues terminal"18:06
dreamonEiner hat geschrieben das könnte man mit systemd machen.. Ohje neue Baustelle18:15
koffeinfriedhofdreamon: Du kannst `/usr/bin/tmux new-session -d -s NAME` nutzen und darauf später mit `tmux attach` zugreifen. Und ja, nicht mit crontab, sondern einer systemd-user-unit.19:00
dreamonkoffeinfriedhof, hallo. https://wiki.ubuntuusers.de/Howto/systemd_Service_Unit_Beispiel/ Hab mich an dieses Beispiel gehalten. Er verwendet /etc/systemd/system .. Ist das falsch?19:01
le_botTitle: systemd Service Unit Beispiel › Howto › Wiki › ubuntuusers.de (at wiki.ubuntuusers.de)19:01
koffeinfriedhofdreamon: Kommt darauf an, was du vorhast. Sind ja unterschiedliche Dinge, ob ich was systemweit verwende oder gekoppelt an einen Benutzer. Da du das versuchst aus dem Homeverzeichnis zu starten, wäre eine https://wiki.ubuntuusers.de/systemd/User_Units/ sinnvoller. Die wird dann beim Anmelden automatisch gestartet.19:12
le_botTitle: User Units › systemd › Wiki › ubuntuusers.de (at wiki.ubuntuusers.de)19:12
dreamonkoffeinfriedhof, mytmuxsession.service: Succeeded. Ich sehe er es aufruft.. hab ein paar echo "Start" > tmux.log eingebaut..sehe keine Fehlermeldung. Aber der tmux läuft nicht.  19:31
koffeinfriedhofdreamon: `systemctl --user status UNIT` oder `journalctl -xep warning`. Da müssten Anhaltspunkte drinstehen.19:33
dreamonkoffeinfriedhof, Sep 11 21:35:09 sicherheit systemd[1]: Configuration file /etc/systemd/system/mytmuxsession.service is marked executable. Please remove executable permission bits. Proceeding anyway.19:36
dreamonSep 11 21:35:09 sicherheit systemd[1]: Configuration file /etc/systemd/system/mytmuxsession.service is marked world-writable. Please remove world writability permission bits. Proceeding anyway.19:36
dreamonProcess: 2812 ExecStart=/bin/bash /home/pi/start-tmux-Apps.sh (code=exited, status=0/SUCCESS)19:36
dreamonhmm.. keine Fehlermeldung.19:37
dreamonDas script läuft aber sauber durch. die -d ist drin. Ich sehe es ja das es starten von der Bash aus. logge micht dann mit tmux attach ein.. 19:37
dreamonnur vom systemd aus startet es nicht.19:38
koffeinfriedhofdreamon: Schreib doch mal nur '#!/usr/bin/bash\n/usr/bin/tmux new-session -d -s ASDF` in dein Script. Oder pack unter der Shebang die Zeile `exec 2> /tmp/error` um die Fehler inneralb des Scriptes zu loggen mit rein.19:43
dreamonDas log wird angelegt, ist aber leer. und tmux läuft nicht (ps aux | grep tmux)19:53
dreamonauch tmux ls zeigt KEIN ASDF an. koffeinfriedhof 19:54
dreamonExecStart=/usr/bin/bash /home/pi/start-tmux-Apps.sh --> sollte ich vielleicht das /usr/bin/bash weg lassen?19:55
koffeinfriedhofdreamon: Wie sieht denn deine Servicedatei aus?20:00
dreamonkoegs, 20:07
dreamonups20:07
dreamonkoffeinfriedhof, https://pastebin.com/Bjp98ppN20:07
le_botTitle: dreamon - Pastebin.com (at pastebin.com)20:07
dreamonist noch in den System_Units. Ich hab User=pi dort noch eingetragen.20:09
koffeinfriedhofdreamon: Du musst auf jeden Fall RemainAfterExit=yes setzen, sonst beendet er ja Eltern- und Kindprozesse. Und ich würde oneshot als service type nehmen und Restart=no noch setzen.20:11
dreamonkoffeinfriedhof, gehört das alles unter [Service] rein?20:11
koffeinfriedhofdreamon: Da du ja detached startest, beendet sich ja der Aufruf und gibt 0 zurück. Ja, alles unter [Service].20:12
dreamonkoffeinfriedhof, Wenn ich dich richig verstehe, ruft er es zwar auf, läuft das script aber durch und beendet anschliessen alle prozesse sofort wieder.20:15
koffeinfriedhofdreamon: Genau. Du hast eine bash als Elternprozess und startest von dieser aus die ganzen Subprozesse. Wenn diese bash dann beendet wird, bekommen die Subprozesse auch das Signal sich zu beenden. Kannst du ganz einfach testen. Starte ein Terminal, darin dann bspw. firefox & und beende die Shell mit ctrl-d. Dann geht auch der firefox mit aus.20:17
koffeinfriedhof(zumindest wenn da nicht etwas Magie mitläuft wie in manchen Terminalemulatoren)20:17
dreamonkoffeinfriedhof, jetzt läuft dein ASDF nach systemctl restart mytmuxsession.service20:18
koffeinfriedhofdreamon: Prima. Dann kannst du auf dieser Basis jetzt ja dein Script anpassen.20:19
dreamonkoffeinfriedhof, Das funktioniert jetzt auch. **VIELEN VIELEN DANK** Darauf wäre ich in 100Jahren nicht gekommen20:22
koffeinfriedhofdreamon: Ach, sicher. In 100 Jahren gibt es auch kein systemd mehr^^20:22
dreamonKannst du mir erklären was der große unterschied zwischen system_units und user_units ist. Ich hab ja user gesetzt.20:24
koffeinfriedhofdreamon: Systemunits laufen unabhängig von den (angemeldeten) Benutzern. User Units nur, wenn die Nutzer angemeldet sind.20:25
dreamonDas heißt wenn der Nutzer sich nicht anmeldet, dann wird auch mein Script nicht gestartet?20:26
koffeinfriedhofrichtig.20:26
dreamonDann hab ich es genau richtig gemacht. ich will das mein Script immer gestartet wird, wenn die Kiste neu hochfährt20:26
koffeinfriedhofJa, dachte ich mir, da du das in .profile versucht hast.20:26
koffeinfriedhofAch so. Nee. 20:28
dreamonnein in crontab 20:28
koffeinfriedhofWenn es IMMER gestartet werden soll, brauchst du einen system service und kannst (solltest/musst) da dann noch Nutzer/Gruppe und Homeprotection einstellen20:28
dreamonWobei crontab schon was feines ist, und es mich doch sehr wundert das ich mein script nicht als user crontab ausführen konnte20:28
koffeinfriedhofcrontab hilft dir ja auf systemd nix. Das wandelt die Dinger auch einfach nur in systemd-units um. Du hast nur ne Fehlerquelle mehr im System. Das ist für andere init-systeme.20:30
koffeinfriedhofDein Script braucht Zugriff auf alle Ressourcen und alle benötigten Umgebungsvariablen. Da musst du bei cron dafür sorgen, das diese gesetzt sind. Bei systemd gibst du einfach den Nutzer mit an und spezielle Umgebungsvariablen, dann läufts.20:31
dreamonAchso das wußte ich auch nicht. Aber jetzt ergibt das langsam Sinn.20:31
dreamonMein script wurde als user gestartet. Passt doch. Was meinst du mit Homeprotection?20:33
koffeinfriedhofJaein. Sollte an sich funktionieren. Allerdings werden cronjobs wohl als timer units und nicht services umgewandelt, ist dann auch wieder was (leicht) anderes. Ich gehe einfach mal davon aus, das dein cron-Nutzer keinen Zugriff auf die Daten des pi-Nutzers hatte. Ist aber nur geraten.20:33
dreamonDie Jungs von #tmux schrieben →  I do not start tmux via crontab because I want it to inherit the DISPLAY variable from xinit20:34
koffeinfriedhofdreamon: https://www.freedesktop.org/software/systemd/man/systemd.exec.html → Suche nach ProtectHome. Ist auch eine Option.20:34
le_botTitle: systemd.exec (at www.freedesktop.org)20:34
koffeinfriedhofdreamon: DISPLAY brauchst du für grafische Anwendungen. Ganz andere Baustelle. Dafür muss dann der Nutzer auch grafisch eingeloggt sein und einen XServer/Wayland-Compositor gestartet haben.20:35
dreamonkoffeinfriedhof, Auf jedenfall, nochmals danke. Ich werd mir das jetzt alles notieren, weil da sind schon einge Fallstricke drin, wo es dann eng wird.20:37
koffeinfriedhofSehr positiv formuliert :D Und bitte.20:38
dreamonschönen Abend 20:38

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!