Starten von C#-Konsole als Terminalanwendung im Autostart

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Wolf359
Beiträge: 1
Registriert: 25.09.2021 11:58:29

Starten von C#-Konsole als Terminalanwendung im Autostart

Beitrag von Wolf359 » 25.09.2021 12:10:20

Hallo Forum,

ich habe hier zwei Probleme, die ich versuche hier in einem Abwasch zu klären.
Ich schildere zuerst, welche Systemkonfiguration ich verwende.
Raspberry Pi 4, 8GB RAM, 32GB Micro-SD (OS), 32GB USB (DB-Backup)
Als OS verwende ich Debian-Buster V.10

Code: Alles auswählen

lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster

ich habe nach dem Aufsetzten (hier als Ergänzung) folgende Standardprogramme entfernt.

Code: Alles auswählen

sudo apt-get remove wolfram-engine sonic-pi python3-numpy smartsim penguinspuzzle timidity scratch nuscratch python3-pygame python-pygame python-tk python-picraft bluej claws-mail greenfoot minecraft-pi geany libreoffice* -y
Installiert wurde anschließend
  • Remote Desktop Service
    Apache2 Webserver
    MariaDB
    PHPMyAdmin
    Mono
    Mosquitto
Das Erste Problem dürfte einfacher sein. Ich habe die Vermutung, dass es sich um automatische Updates handelt, bin mir aber nicht sicher. Jeden Tag um 11:11AM bleibt mein Programm stehen. Dann wäre die erste Frage, wie kann ich das automatische Update abschalten? Heute lief es in einem Terminal sichtbar gestartet durch.

Jetzt zum Hauptproblem:
Vorweg genommen, das Ganze hat alles schon einige Tage funktioniert. Deswegen der Zusatz mit dem Abschalten der automatischen Updates.

Ich habe den Raspberry schon seit Monaten laufen, um die Stabilität zu beobachten und wollte nun die Ergänzungen mit Zielrichtung Hausautomation zu etablieren. Zu Testzwecken habe ich mir ein kleines Board für Arduino, genauer den ESP8266 D1 Mini zusammengesteckt. Daten werden via MQTT korrekt übertragen.
Das Tool, das die Daten auf dem Raspberry seitens des Mosquitto empfängt wurde unter C# als Konsolenanwendung entwickelt. Läuft!
Die Daten werden empfangen, in die DB geschrieben, ich kann alles korrekt auslesen. Auch die 2-Wege-Kommunikation zwischen Server (Raspberry) und ESP8266 sowie einer statistischen Anwendung auf dem PC läuft so wie ich es haben möchte.
Ich habe ferner, nach langer Recherche im Internet eine Möglichkeit gefunden, diese Konsole unter Debian zu starten. Dazu habe ich eine .sh Datei angelegt.

im Autostart verankert:

Code: Alles auswählen

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Zeile:

Code: Alles auswählen

/home/pi/startMqttWriter.sh
Das Ganze hat wie erwähnt einige Tage funktioniert. Ich fange Fehler seitens MQTT und MariaDB ab und reagiere entsprechend Event-gesteuert darauf. Es ist mir auch möglich, einen Reboot von meiner C#-Konsole zu initiieren. Nach dem Reboot wird das Programm seitens des Autostart aufgerufen und noch nicht mal im Vordergrund gestartet (was eigentlich nicht schlecht ist).

ABER:
Ich habe nun das seltsame Problem, das das Programm zwar auf dem Raspberry gestartet wird, aber irgendwie inaktiv bleibt und zwar solange, bis ich mich per Remote seitens des PC's auf den Raspberry aufschalte. Dann startet die Anwendung im Hintergrund.
Alternativ kann ich die Anwendung aus dem Autostart entfernen und manuell starten, aber ich möchte das natürlich eigentlich voll automatisch erledigt sehen.
Das Ding sollte ja rund um die Uhr laufen und wenn es schon mal Störungen gibt, diese auch selbst erkennen und durch Reboot beheben. (Sofern nicht das OS selbst einen Schuss hat.)

Ich hatte mir auch im Crontab einen zeitlich getriggerten Reboot initialisiert (11:15AM)
bringt auch nichts.

Code: Alles auswählen

sudo crontab -e
7 */6 * * * /home/pi/DBaseDump.sh
15 11 * * * sudo reboot
Jetzt bin ich mit meinen Ideen durch und weiß mir nicht mehr zu helfen.

Die Fragen nochmal zusammengefasst:
1. Wie kann ich das automatische Update abschalten?
2. Wie kann ich die Anwendung so starten, dass sie auch wirklich aktiv wird?
3. (Bonus) Wie kann ich die Anwendung sichtbar in einem Terminal starten?


Hier noch ergänzend ein Ausschnitt von den Konsolen-Meldungen:
Received: Recall
Recall ist eingegangen.
Callback wurde beantwortet.
Received: 22.31
Schreibe Daten in DB! 11:51:32
Sende TimeUpDate: 11:51:32
Received: 54.59
Schreibe Daten in DB! 11:51:32
Received: 960.58
Schreibe Daten in DB! 11:51:32
Received: 22.31
Schreibe Daten in DB! 11:52:02
Received: 54.65
Schreibe Daten in DB! 11:52:02
Received: 960.56
Schreibe Daten in DB! 11:52:02
Received: Recall
Die Anwendung am PC meldet ebenfalls (sofern nicht MQTT ausfällt) ob irgendwelche Fehler anfallen. TimeUpDate funktioniert ebenfalls damit ich an allen Stationen später dieselbe Zeit habe und damit auf einen RTC verzichten kann, da dies ja eigentlich seitens des Raspberry immer läuft.

Danke schon vorab an alle, die sich die Mühe machen hier zu helfen

Grüße Wolfgang

Antworten