2017-07-10 2 views
0

J'ai Raspbian Jessie 8 fonctionnant dans un Raspberry Pi 3. Il y a 3 services JavaScript qui sont automatiquement démarrés par PM2. Cependant, si le Raspberry est éteint de manière incorrecte, par exemple, si le câble d'énergie est retiré, les services ne démarrent pas.Créer un script shell pour redémarrer linux en cas d'arrêt incorrect

Ils ne démarrent automatiquement que si le Raspberry est correctement arrêté, par exemple en utilisant sudo reboot.

J'ai besoin d'un script shell qui vérifie si le Raspberry a été correctement arrêté et, le cas échéant, redémarré en utilisant sudo reboot.

J'ai vu here et here comment créer un script de redémarrage simple et here comment vérifier si un service est en cours d'exécution, mais n'a rien trouvé sur la façon de vérifier un arrêt incorrect. Quelqu'un peut-il me dire comment?

+3

* "... si le Raspberry est éteint de manière incorrecte, par exemple, si le câble d'énergie est retiré, les services ne démarrent pas" * - Il semble que les services ou le gestionnaire de service doivent être corrigés. – jww

+1

Cela ressemble aussi à un script qui vous lance les services javascript s'ils ne sont pas déjà démarrés serait un meilleur choix, puis redémarrer simplement pour obtenir vos services pour démarrer. Un redémarrage ou un cycle d'alimentation devrait démarrer les services de la même manière ... quelque chose se sent ici. – JNevill

Répondre

1

Vous pouvez toujours démarrer vos services dans l'ancien fichier de démarrage /etc/rc.local qui est un script shell appelé comme la dernière chose au démarrage. Assurez-vous que son exécutable.

+0

J'ai essayé de faire ce que vous avez dit, mais le problème persiste. Les services semblent commencer, mais quand je les liste en utilisant 'pm2 list' il n'y a pas de processus en cours. Si je ferme correctement le Raspberry, les processus sont démarrés via le fichier '/ etc/rc.local'. – Ernani