Wie deaktiviere ich Seiten wiederherstellen? Chrom wurde nicht richtig heruntergefahren. Prompt?

18

Ich automatisiere ein RPi für vier Displays in meiner Firma. Ich habe sie jeden Tag neu starten, damit der Browser aktualisiert wird. Ich kann die Wiederherstellungsseiten nicht erhalten. Chrom hat die Blase nicht richtig abgeschaltet, um nicht hochzukommen. Ich habe verschiedene Lösungen ausprobiert, die ich online gefunden habe, aber nichts funktioniert.

Ich habe viele Schalter hinzugefügt, wie --noerrdialogs --disable-session-abgestürzte-Blase --disable-infobars --disable-restore-session-state --incognito

Ich habe auch ein paar sed-Befehle ausprobiert, die ich online gefunden habe.

Jede Hilfe wäre sehr dankbar.

Paul Karvetski
quelle
Haben Sie sich mit dem richtigen Herunterfahren von Chrom befasst?
Steve Robillard
Der Grund, warum ich dies vorschlage, ist die Behandlung der Krankheit, nicht die Nebenwirkungen.
Steve Robillard
Ich dachte über einen Cronjob nach, um Chrom 10 Minuten vor dem Neustart herunterzufahren. Das ist der nächste Schritt, irgendwelche Vorschläge?
Paul Karvetski
Dies kann insbesondere dann funktionieren, wenn ein Skript über die GUI erstellt wurde und vor dem Neustart eine Überprüfung hinzugefügt wird. Möglicherweise können Sie den Neustart auch vollständig vermeiden. Wenn nur eine einzelne Seite angezeigt wird, sollten Sie sich fullpageOS ansehen.
Steve Robillard
1
Sie können Javascript verwenden, um nach einer bestimmten Zeit zu aktualisieren. stackoverflow.com/questions/2787679/… Sie müssen wahrscheinlich nicht alle 5 Sekunden aktualisieren , aber die Theorie ist dieselbe.
Steve Robillard

Antworten:

24

Ich habe es! Verwenden--app=your.url

Zum Beispiel:

chromium-browser --kiosk --app=http://your.url.here
Fabiano Cores
quelle
2
das einzige was bei mir auf meinem Pi Zero funktioniert hat! Vielen Dank
DarkCygnus
Wo warst du vor einem Jahr :)
Uchuugaka
Im Ernst, das rettete meine Irritationen mit krachendem Chrom. danke
uchuugaka
6

1) Ich weiß nicht, warum --disable-infobars bei Ihnen nicht funktioniert hat. Das funktioniert gut für mich:

chromium-browser --kiosk --disable-infobars \
http://URL1 \
http://URL2 \
http://URL3

2) Eine bessere Möglichkeit, den Browser (Inhalt) zu aktualisieren, besteht darin, ihn Control-R zu senden. Führen Sie beispielsweise in Ihrem Browser-Startskript Folgendes aus:

(while sleep 200; do xdotool key ctrl+R; done) &

(Ich sende auch Strg + Tab, um durch meine mehreren Browser-Tabs zu blättern

Nigel Pearson
quelle
4

Ich weiß, dass dies das Problem nicht wirklich löst - aber als Workaround hat es den Trick für mich getan.

Ich habe dafür gesorgt, dass Chrome sauber heruntergefahren wurde ... Terminal geöffnet

cd .config/chromium/Default
chattr +i Preferences

Dies macht die Datei unveränderlich ... rein schreibgeschützt. Chrome kann beliebig abstürzen. Das Popup wird nicht angezeigt, da die Voreinstellungsdatei nicht mehr geändert werden kann.

Dieses Setup funktioniert für mich, da sich die Pi-Konfiguration nicht ändert - es wird lediglich eine webbasierte App im Kioskmodus angezeigt.

Tremayne Sargeant
quelle
Funktioniert auch in Linux Distros ... Beachten Sie, dass es Probleme in Windows / WebDriver / Selenium geben kann, wie an anderer Stelle berichtet
MarcoZen
4

Für diejenigen, die von Google hierher kommen:

Der beste Weg, um diese Aufgabe jetzt auszuführen, ohne inkognito verwenden zu müssen, besteht darin, zwei Einstellungen in den Chromium-Einstellungen anzupassen . Sie sind:

  • exited_cleanly
  • exit_type

Nach den persönlichen Tests kann das Ändern der Einstellung "exited_cleanly" möglicherweise nicht immer dazu führen, dass die Chromium-Eingabeaufforderung beim Start nicht verhindert wird. Andere Flags wie "-disable-infobars" funktionieren ebenfalls nicht.

Um diese Einstellungen anzupassen, fügen Sie bitte vor dem Starten von Chromium Folgendes in Ihre Startdatei ein (je nachdem, wie Sie Chromium für die automatische Ausführung im Kioskmodus eingerichtet haben, befindet sich diese Datei entweder unter "/ etc / xdg / lxsession / LXDE-". pi / autostart "," / etc / xdg / openbox / autostart "," ~ / .Xsession "oder eine andere Datei, je nachdem, was Sie bereits installiert haben).

  • sed -i 's / "exited_cleanly": false / "exited_cleanly": true /' ~ / .config / chrom / Default / Preferences
  • sed -i 's / "exit_type": "Crashed" / "exit_type": "Normal" /' ~ / .config / chrom / Default / Preferences

Bei meinem Setup (mit Xsession) würde das Verfahren beispielsweise wie folgt ablaufen:

  1. Geben Sie "sudo ~ / .Xsession" in die Konsole ein
  2. Fügen Sie die obigen 2 Zeilen in die Datei ein, bevor Chromium ausgeführt wird (Sie sollten eine Zeile sehen, die mit "Chrom-Browser" beginnt, fügen Sie sie also darüber ein).
  3. Drücken Sie Strg + X, um die Datei zu beenden
  4. Geben Sie "Y" ein.
  5. Drücken Sie Enter
  6. Starten Sie den Computer neu

Auch hier befindet sich die zum Starten von Chromium verwendete Datei möglicherweise an einem anderen Speicherort, je nachdem, wie Sie Ihren Pi eingerichtet haben. Nach dem Ändern dieser beiden Einstellungen sollte Chromium jedoch gestartet werden, ohne dass die Absturzaufforderung angezeigt wird.

Wincruzer
quelle
2

Ich habe eine Problemumgehung gefunden, die sich tatsächlich um mehrere Elemente gleichzeitig kümmerte.

vi restartscript.sh

#!/bin/sh
/usr/bin/killall chromium-browser
/usr/bin/apt-get update -y
/usr/bin/ apt-get upgrade -y
/sbin/reboot

Machen Sie das Skript ausführbar: chmod +x restartscript.sh

Cron bearbeiten: chrontab -e

0 5 * * * /home/pi/restartscript.sh

Die angezeigte Webseite wird aktualisiert und der Pi bleibt auf dem neuesten Stand.

Paul Karvetski
quelle
2

Diese Seite gab mir die Antwort. Option hinzufügen

chrome_options.add_argument("--profile-directory=Default")

löste es für mich (in einer Nicht-Kiosk-Anwendung).

Es stellte sich heraus, dass dies nur ein Teil des Problems war. Die ganze Situation scheint sehr unterschiedlich zu sein. Ich habe zusätzlich hinzugefügt:

prefs = {'exit_type': 'Normal'}
chrome_options.add_experimental_option("prefs", {'profile': prefs})

Beim Versuch, den Fehler zu reproduzieren, um zu beweisen, dass dies das Update war, kann ich ihn jetzt nicht dazu bringen, mit dem Popup zurückzukehren (auch ohne diesen Code). YMMV, übrigens läuft Version 72 von Chrome. Ich habe andere Beiträge gesehen, in denen empfohlen wurde , die Einstellungsdatei mit etwas wie sed zu ändern, bevor der Browser gestartet wurde.

Bryan
quelle
1

Meine Lösung ist sehr einfach. Ich kopiere nur eine Voreinstellungsdatei von einem früheren eindeutigen Herunterfahren von Chromium über die aktuelle Datei ~/.config/chromium/Default/Preferences.

Frank Reeth
quelle
0

Um die Blase "Seiten wiederherstellen" zu deaktivieren, öffne ich Chrom in der Autostart-Datei zweimal wie folgt:

chromium-browser --no-startup-window --kiosk
chromium-browser --noerrordialogs --kiosk http://your.url.here

Der erste erhält die Popup-Blase, aber Sie sehen sie nicht. Der zweite wird geöffnet, als ob der Browser erfolgreich geschlossen wurde. Wahrscheinlich nicht der sauberste Weg, dies zu tun, aber es hat bei mir funktioniert.

Shane Loucks
quelle
0

Die einzige Möglichkeit, die für mich funktioniert hat, bestand darin, die Konfiguration vor dem Starten von Chromium zu ändern:

sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/Default/Preferences
Mikey
quelle