Debian Program mit Autostart funktioniert nicht richtig

Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Debian Program mit Autostart funktioniert nicht richtig

Beitrag von af0815 »

Ich habe ein Programm das V4L2 verwendet. Starte ich das Programm über den Desktop, so kann ich ohne Probleme damit arbeiten. Am Desktop ist ein normaler Starter, der einfach ein Bashscript startet, wo mein Programm aufgerufen wird.

Lege ich denselben Starter unter .config in den Autostart so funktionirt es.

So, jetzt kommt der Hammer, Mache ich ein Logout/Login so funktioniert mein Programm und kann auf V4L und das Device /dev/video0 zugreifen. Mache ich einen Kaltstart, so kann ich nicht auf das Device korrekt zugreifen. Anscliessend geht ee, solange ich keinen Kaltstart mache.

BS: Debian Buster X64.

Kann mir wer auf die Sprünge helfen, was da schieflaufen könnte ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Debian Program mit Autostart funktioniert nicht richtig

Beitrag von Winni »

Hi!

Stochern im Nebel:

Braucht Dein Programm irgendetwas, das noch nicht gestartet ist - wie z.B. das Netz?
Brutaltest: In der lpr ein längeres sleep einbauen zum Testen.

Im Zweifelsfall kann man auch unter /etc/systemd/system einen eigenen Service anlegen und definieren, was dafür schon alles gestartet sein muss.

Winni

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Debian Program mit Autostart funktioniert nicht richtig

Beitrag von af0815 »

Im Bash Script ist ein Sleep eingetragen. Wen man beim Start zusieht, ist die Oberfläche längst da, bevor das Programm gestartet ist.

Das /dev/video0 ist da. Das wird mit oder ohne dem Sleep gefunden. Nur es sieht für mich aus, als wäre das Device irgendwie R/O. Das V4L wird im Projekt aufgebaut, wäre das Device zu diesem Zeitpunkt nicht da, würde ich hier schon eine Exception bekommen, das geht alles. Ich bekomme die Exception erst dann, wenn ich die Parameter wie Belichtung übertrage.

Mache ich einen Kaltstart ohne Autostart und klicke sofort nach erscheinen des Desktops auf den Starter so geht es ohne Probleme. Da bin ich sicher schneller als mit der Verzögerung.

Bei einem 'Warmstart' egal über Reboot des Rechners oder Logout/login geht es immer. Misteriös.

Ich habe das ganze, wie gesagt in der .config/autostart des Benutzers eingetragen. Damit sollte das ja auch im Kontext des Benutzers laufen. Gibt es noch eine andere Möglichkeit das automatisch zu starten und das es sicher im aktuellen Benutzer läuft ?!
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Debian Program mit Autostart funktioniert nicht richtig

Beitrag von Winni »

Hallo!

Eine beliebte Fehlerquelle ist, sich auf den path zu verlassen: also unbedingt den absoluten Pfad angeben.

Glücklicherweise hat Linux nicht so viele Möglichkeiten wie Windows ein Programm automatisch zu starten (27 laut c't !!) . Was aber geht ist ein Eintrag in cron. Statt der ersten 5 Datum/Zeit-Parameter steht da nur @reboot. Dann sieht der Eintrag so aus:

Code: Alles auswählen

@reboot /Pfad/zu/meinem/Programm
Das natürlich in den user crontab eintragen. Klappt einwandfrei. Vielleicht hilfts.

Winni

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Debian Program mit Autostart funktioniert nicht richtig

Beitrag von af0815 »

Pfade ist sowieso alle absolut eingetragen.

Das hat eine visuelle Bedienoberfläche, daher geht es nicht über cron. Das muss zusätzlich als ein bestimmter Benutzer laufen. Das ist auf einen Rechner der keine Bedienelemente hat, sondern nur einen Bildschirm.

Das jetzige würde ja laufen, wenn der Unterschied zwischen Warm- und Kalt-Start nicht wäre. Bin dabei ein zweites System bei mir aufzusetzen und zu sehen wo da noch Haken kann.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Debian Program mit Autostart funktioniert nicht richtig

Beitrag von fliegermichl »

Das ist schon ein merkwürdiges Phänomen.
Weil das Betriebssystem wird doch sowohl bei Kalt- und Warmstart vollständig neu gestartet.

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Debian Program mit Autostart funktioniert nicht richtig

Beitrag von sstvmaster »

Meine Vermutung wäre (Beispiel):

Ein Gerät was im Kaltstart per USB vorher Stromlos war und jetzt erst wieder hochfahren muss, daher dauert das ein wenig bis das Gerät erreichbar ist.
Im Warmstart/Logout/Login wird ja dann der USB nicht Stromlos gemacht und funktioniert weiter.

Nur mal so was mir dazu eingefallen ist.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Debian Program mit Autostart funktioniert nicht richtig

Beitrag von Winni »

Hi!

Nächster Versuch:

Die meisten Desktops haben die Möglichkeit, etwas automatisch zu Starten. KDE hat dazu in den Einstellungen ein explizites Icon "Starten und Beenden" (o.ä.)

Das klappt sehr gut und man kann sich sicher sein: Wenn der Desktop gestartet ist, dann ist der Rest auch gestartet. Ich benutze das u.a. auf einigen Clients um VirtualBox mit Windows zu starten.

Winni

Antworten