Problem beim Autostart eines Programms

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Black Panther
User
Beiträge: 27
Registriert: Samstag 11. Juni 2016, 19:09

vielen Dank erst einmal für die Mithilfe. Grundsätzlich war die .bashrc der richtige Gedanke aus meiner Sicht. Ich muss mein Programm noch etwas anpassen. Beim Bootup wurde das Programm immer gestartet, aber sofort wieder abgebrochen. Scheinbar war ein Hintergrunddienst nicht zeitnah fertig. Ab 3 Sekunden time.sleep() lief das Programm erst einmal so ab wie ich es wollte.

Problem weiterhin:
Jedesmal wenn ich mich über SSH verbinde oder ein Terminal über die GUI aufrufe läuft das Programm als erstes ab. Aus jetztiger Sicht noch nicht ganz so schlimm, könnte aber in ZUkunft nervig werden.
Sirius3
User
Beiträge: 17748
Registriert: Sonntag 21. Oktober 2012, 17:20

@Black Panther: besser Du schreibst ein Exception-Handling, das auf den fehlenden Hintergrunddienst wartet, statt pauschal 3 Sekunden Pause einzubauen. Wie man einen neuen Nutzer mit alternativer Login-Shell erzeugt, habe ich ja schon geschrieben.
BlackJack

@Black Panther: Die `.bashrc` ist IMHO der falsche Platz, auch wenn der Benutzer sonst nichts weiter macht. Diese Datei wird *jedes mal* ausgeführt wenn unter dem Benutzer eine Bash gestartet wird. Sachen die nur beim Anmelden passieren sollen, also nur bei eine Login-Shell, gehören in die `.bash_profile`. Aber selbst das würde ich nicht machen. Leg einen neuen Benutzer an und verpasse dem Dein Programm *als* Login-Shell.
Black Panther
User
Beiträge: 27
Registriert: Samstag 11. Juni 2016, 19:09

@Black Jack.... die .bashrc ist wirklich kein guter Platz. *Das jedes mal* ausführen ist genau mein Problem.

@Sirius 3... ich würde auf alle deine Vorschläge gerne reagieren, aber sie bedingen auch immer ein ewig langes googeln. Bis jetzt weiß ich noch nicht einmal, welcher Dienst es ist, der mir Beschwerden macht. Desweiteren ist mir halt auch nicht klar auf welche login-shell du anspielstt. Ich muss wissen wie der konkrete Befehl dazu heißt. Ich kenne eben nur "sudo nano .bashrc" und "sudo nano /etc/profile". Bei beiden führten Einträge die ein Autologin vollziehen sollten nicht zu den gewünschten Ergebnissen. In "sudo nano ~/.login" steht bei mir z.B garnichts drin. Von dahe nehme ich an, das ich dort falsch bin.

@Sirius 3...zum Thema neuen Nutzer anlegen bin ich auch nicht ganz auf deiner Höhe:
1. Nutzer erstellen: useradd -m -s /dir/your_script.py username
2. Dann konfigurierst Du diesen User als Autologin.
Erstens verstehe ich noch. Legst ein neuen Nutzer an und das Verzeichnis, aber zweitens ist das Problem schlecht hin. DIe Tutorials im Internet beziehen sich alle darauf "sudo nano /usr/bin/raspi-config" abzuändern und "pi" gegen z.B "Black Panther" auszutauschen. Das möchte ich aber garnicht. Ich weiß was du mir sagen willst, aber ich kann es technisch nicht umsetzen.
Sirius3
User
Beiträge: 17748
Registriert: Sonntag 21. Oktober 2012, 17:20

@Black Panther: welcher Fehler Dein Python-Programm abstürzen läßt, siehst Du am Traceback, den Dir Python freundlicherweise liefert.
Login-Shell ist das Programm das gestartet wird, sobald Du Dich einloggst, und da willst Du Dein Python-Programm starten und dafür willst Du einen eigenen Nutzer anlegen, und das macht useradd. BlackJack hat Dir noch den Link: Systemd Autologin without Display Manager gezeigt, wo beschrieben steht, wie man ein Auto-Login einrichtet. Was Du jetzt mit raspi-config willst, versteh ich nicht.
Antworten