Comment désactiver les pages de restauration? Le chrome ne s'est pas arrêté correctement. Rapide?

18

J'automatise un RPi pour quatre écrans dans mon entreprise. Je les fais redémarrer tous les jours pour que le navigateur se rafraîchisse. Je n'arrive pas à obtenir les pages de restauration? Le chrome ne s'est pas arrêté correctement pour ne pas remonter. J'ai essayé plusieurs solutions que j'ai trouvées en ligne, mais rien ne fonctionne.

J'ai ajouté de nombreux commutateurs tels que --noerrdialogs --disable-session-crashed-bubble --disable-infobars --disable-restore-session-state --incognito

J'ai également essayé quelques commandes sed que j'ai trouvées en ligne.

Toute aide serait grandement appréciée.

Paul Karvetski
la source
Avez-vous envisagé de fermer correctement Chrome?
Steve Robillard
la raison pour laquelle je suggère que c'est le traitement de la maladie, pas les effets secondaires.
Steve Robillard
Je pensais à un cronjob pour arrêter le chrome 10 minutes avant le redémarrage. C'est la prochaine étape, des suggestions?
Paul Karvetski
Cela peut fonctionner en particulier si un script est exécuté via l'interface graphique et qu'une vérification est ajoutée avant votre redémarrage. Vous pouvez également éviter complètement le redémarrage. S'ils affichent seulement une seule page, vous voudrez peut-être regarder fullpageOS.
Steve Robillard
1
vous pouvez utiliser javascript pour actualiser après un certain temps stackoverflow.com/questions/2787679/… vous n'avez probablement pas besoin d'actualiser toutes les 5 secondes, mais la théorie est la même.
Steve Robillard

Réponses:

25

J'ai compris! Utilisation--app=your.url

Par exemple:

chromium-browser --kiosk --app=http://your.url.here
Fabiano Cores
la source
2
la seule chose qui a fonctionné pour moi sur mon Pi Zero! Merci
DarkCygnus
Où étiez-vous il y a un an :)
uchuugaka
Sérieusement, cela a sauvé mes irritations avec du chrome cassant. merci
uchuugaka
6

1) Je ne sais pas pourquoi --disable-infobars n'a pas fonctionné pour vous. Cela fonctionne bien pour moi:

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

2) Une meilleure façon de rafraîchir le navigateur (contenu) serait de lui envoyer Control-R? Par exemple, dans le script de démarrage de votre navigateur, faites:

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

(J'envoie également ctrl + Tab pour parcourir mes multiples onglets de navigateur

Nigel Pearson
la source
4

Je sais que cela ne résout pas vraiment le problème - mais en guise de solution - cela a fait l'affaire pour moi.

Je me suis assuré que Chrome était bien arrêté ... Terminal ouvert

cd .config/chromium/Default
chattr +i Preferences

Cela rend le fichier immuable ... strictement en lecture seule, Chrome peut planter autant qu'il le souhaite - il n'affichera pas la fenêtre contextuelle car le fichier Préférences ne peut plus être modifié.

Cette configuration fonctionne pour moi car la configuration Pi ne changera pas - elle affiche simplement une application Web en mode kiosque.

Tremayne Sargeant
la source
Fonctionne également dans les Distros Linux ... Notez qu'il pourrait y avoir des problèmes dans Windows / WebDriver / Selenium comme signalé ailleurs
MarcoZen
4

Pour ceux qui arrivent ici de Google:

La meilleure façon d'effectuer cette tâche, sans avoir à utiliser incognito, est de régler deux paramètres dans les préférences de Chromium. Elles sont:

  • exited_cleanly
  • exit_type

D'après ce que j'ai recueilli à partir de tests personnels, la simple modification du paramètre "exited_cleanly" peut ne pas toujours fonctionner pour empêcher l'invite Chromium au démarrage. D'autres indicateurs tels que "-disable-infobars" ne fonctionneront pas non plus.

Pour ajuster ces paramètres, veuillez ajouter ce qui suit dans votre fichier de démarrage, avant de lancer Chromium (selon la façon dont vous avez configuré Chromium pour qu'il s'exécute automatiquement en mode kiosque, ce fichier peut être situé dans "/ etc / xdg / lxsession / LXDE- pi / autostart "," / etc / xdg / openbox / autostart "," ~ / .Xsession ", ou un autre fichier, selon ce que vous avez déjà installé).

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

Par exemple, avec ma configuration (en utilisant Xsession), la procédure se déroulerait comme suit:

  1. Entrez "sudo ~ / .Xsession" dans la console
  2. Insérez les 2 lignes ci-dessus dans le fichier, avant l'exécution de Chromium (vous devriez voir une ligne commençant par "chromium-browser", alors insérez-les au-dessus)
  3. Appuyez sur ctrl + X pour quitter le fichier
  4. Tapez "Y"
  5. Appuyez sur Entrée
  6. Redémarrez la machine

Encore une fois, le fichier utilisé pour démarrer Chromium peut se trouver à un emplacement différent, selon la façon dont vous avez configuré votre pi, mais après avoir modifié ces deux paramètres, Chromium devrait démarrer sans afficher l'invite de plantage.

Wincruzer
la source
2

J'ai trouvé une solution de contournement qui a effectivement pris en charge plusieurs éléments à la fois.

vi restartscript.sh

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

Rendez le script exécutable: chmod +x restartscript.sh

Modifier cron: chrontab -e

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

La page Web qui s'affiche est rafraîchie et le pi reste à jour.

Paul Karvetski
la source
2

Cette page m'a donné la réponse. Ajout de l'option

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

résolu pour moi (dans une application non kiosque).

Il s'avère que ce n'était qu'une partie du problème. L'ensemble de la situation semble très variable. J'ai également ajouté:

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

En essayant de reproduire l'erreur pour prouver que c'était le correctif, je ne peux pas maintenant le faire revenir avec le pop-up (même sans ce code). YMMV, btw il s'agit de la version 72 de Chrome. J'ai vu d'autres articles qui préconisaient de modifier le fichier de préférences avec quelque chose comme sed avant de démarrer le navigateur.

Bryan
la source
1

Ma solution est très simple. Je copie uniquement un fichier de préférences à partir d'un ancien arrêt clair de Chromium sur le fichier actuel ~/.config/chromium/Default/Preferences.

Frank Reeth
la source
0

Pour désactiver la bulle de restauration des pages, j'ouvre le chrome deux fois dans le fichier de démarrage automatique comme ceci:

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

La première obtient la bulle contextuelle mais vous ne la voyez pas, puis la seconde s'ouvre comme si le navigateur avait été fermé avec succès. Ce n'est probablement pas la façon la plus propre de le faire, mais cela a fonctionné pour moi.

Shane Loucks
la source
0

La seule façon qui a fonctionné pour moi a été de modifier la configuration avant de démarrer Chromium:

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