Debian Program mit Autostart funktioniert nicht richtig
- 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
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 ?
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).
- 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
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
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
- 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
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 ?!
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).
- 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
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:
Das natürlich in den user crontab eintragen. Klappt einwandfrei. Vielleicht hilfts.
Winni
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
Winni
- 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
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.
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).
- 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
Das ist schon ein merkwürdiges Phänomen.
Weil das Betriebssystem wird doch sowohl bei Kalt- und Warmstart vollständig neu gestartet.
Weil das Betriebssystem wird doch sowohl bei Kalt- und Warmstart vollständig neu gestartet.
-
- 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
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.
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)
Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)
- 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
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
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