Hallo,
das ganze macht doch überhaupt keinen Sinn... (stand oben glaube ich auch schon ).
Warum realisierst du das nicht als Client-Server Applikation, z.B. mit einer HTML-basierten GUI? Das wäre vielleicht / wahrscheinlich wesentlich einfacher.
Was ist überhaupt der Sinn der Übung? Was macht dein Skript und was muss der Nutzer eingeben, damit es was macht?
Gruß, noisefloor
Problem beim Autostart eines Programms
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
-
- User
- Beiträge: 27
- Registriert: Samstag 11. Juni 2016, 19:09
@noisefloor...bin leider nicht in der Position zu urteilen, ob das Sinn macht oder nicht. Es geht mir eigentlich nur darum, dass es funktioniert.
Sinn der Übung:
1. Kommunikation mit einem Socket-Adapter , der wiederum mit einem Produktionsleitsystem sich austauscht
2. Eingabe von Seriennummer durch den User
3. Auswertung der Seriennummer durch Funktionsaufruf und Weitergabe an das Produktionsleitsystem
weiteres: Zwischendurch noch ein paar Ausgaben auf dem LCD und paar blinkend LEDs. Fertig.
Sinn der Übung:
1. Kommunikation mit einem Socket-Adapter , der wiederum mit einem Produktionsleitsystem sich austauscht
2. Eingabe von Seriennummer durch den User
3. Auswertung der Seriennummer durch Funktionsaufruf und Weitergabe an das Produktionsleitsystem
weiteres: Zwischendurch noch ein paar Ausgaben auf dem LCD und paar blinkend LEDs. Fertig.
@Black Panther: dort, wo Du Dein Auto-Login eingestellt hast, hast Du doch auch einen Nutzer angegeben. Wo ist das Problem, den zu ändern?
@noisefloor: Black Panther hat im anderen Thread etwas von einem Barcode-Scanner geschrieben. Dieser agiert normalerweise als ganz normale Tastatur, so dass man den Input eines Terminals braucht.
@noisefloor: Black Panther hat im anderen Thread etwas von einem Barcode-Scanner geschrieben. Dieser agiert normalerweise als ganz normale Tastatur, so dass man den Input eines Terminals braucht.
@noisefloor: Irgendwie hatte ich im Hinterkopf das da ein Barcode-Scanner involviert ist der sich wie eine Tastatur verhält und der am Raspi angeschlossen ist. Das heisst das Programm auf dem Raspi muss nach dem automatischen starten die ”Tastatureingaben” des Scanners entgegennehmen können.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Gruß, noisefloor
Axo. Na dann... Sollte dann aber per RPC gehen?Black Panther hat im anderen Thread etwas von einem Barcode-Scanner geschrieben.
Gruß, noisefloor
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
oder um nochmal auf die Client-Server Lösung zurück zu kommen: https://serratus.github.io/quaggaJS/
Gruß, noisefloor
oder um nochmal auf die Client-Server Lösung zurück zu kommen: https://serratus.github.io/quaggaJS/
Gruß, noisefloor
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
@Black Panther: klär' uns doch mal in der vollen Gesamtheit auf. Vielleicht gibt es ja wirklich eine bessere Lösung, als dass, was du gerade versuchts zu implementieren.
Gruß, noisefloor
Alternative Client-Server Lösung.was hat denn nun RPC hier verloren?
Mag ja sein - aber wie soll dann der Login headless funktionieren? Auch per Barcode?Es handelt sich um Hardware, die wahrscheinlich an einen USB-Port des Raspi angeschlossen ist und ein Terminal braucht.
@Black Panther: klär' uns doch mal in der vollen Gesamtheit auf. Vielleicht gibt es ja wirklich eine bessere Lösung, als dass, was du gerade versuchts zu implementieren.
Gruß, noisefloor
@noisefloor: Der Login soll automatisch passieren. Liest doch erst mal die vorhandenen Beiträge. Darum geht es doch unter anderem die ganze Zeit.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
@BlackJack: das ist schon klar. Auch, dass der Nutzer _nicht_ `pi` sein sollte. Nur hatte ich es bis dato so verstanden, dass es X andere Benutzer geben soll (und nicht nur _einen_ anderen).
Gruß, noisefloor
@BlackJack: das ist schon klar. Auch, dass der Nutzer _nicht_ `pi` sein sollte. Nur hatte ich es bis dato so verstanden, dass es X andere Benutzer geben soll (und nicht nur _einen_ anderen).
Gruß, noisefloor
-
- 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.
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.
@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.
@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.
-
- 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:
@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:
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.1. Nutzer erstellen: useradd -m -s /dir/your_script.py username
2. Dann konfigurierst Du diesen User als Autologin.
@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.
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.