Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Software - OS - Réseaux » [Linux] » relancer un process user automatiquement
Login Mot de passe

7 visiteurs sur ce topic (0 membre(s), 7 invité(s) )


Auteur
Sujet : relancer un process user automatiquement
Vegan
Vétéran
Membre # 1636

 
Lieu : Area51

Messages :
3212 (0.52 par jour)


Score :

Message du 17-10-2016 @ 1:18   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Salutations!

Depuis la mise à jour Pixel sur mon Raspberry Pi, j'ai un soft que je lance en user (auroramon) qui disparait soudainement sans prevenir. J'ignore pourquoi, je suppose (et espère) qu'il y aura un update qui resoudra la question.
Dans l'immédiat, je souhaite, faute de meilleure solution, savoir si on peut relancer un process quand il plante... ce n'est pas un service, c'est un soft lancé dans une session, avec affichage sous X (que je souhaite conserver).

Je suppose qu'il faut un script qui vérifie périodiquement le pid de mon soft et voie
- s'il existe (-> ne rien faire)
- ou pas/plus (-> le (re)lancer)
?

... mais je ne sais pas comment réaliser ça... l'un d'entre vous pourrait m'aider? (ou aurait une meilleure idée, ce qui serait aussi une aide )
Merci beaucoup :)

----------
Amicalement vôtre
- Haut de page -
nuts
Vétéran
Membre # 1869

 Avatar du membre
Lieu : Alsace

Messages :
11293 (1.85 par jour)


Score :

Message du 17-10-2016 @ 17:47   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

ça doit être possible avec un script sh/bash que tu lancerait a chaque session qui regarde si auroramon est lancé et si non qu'il le lance. Avec google comme ami tu peux trouver des solutions
----------
PC: Phenom 2 X2 3.2GHz@3.7GHz, 10Go ddr, caviar 500Go sata, Radeon 7790 GHz Edition, ArchLinux, Win10 pro 64bits
Station Silicon Graphics Octane R10000 250MHz, 384Mo de Ram, 8.5Go SCSI, IRIX 6.5.30
Netbook Acer AspireOne Intel atom n270 1.6GHz, 1Go de RAM; 160Go, Arch 32bits
Xbox360 Gamertag "xylphute"
- Haut de page -
Vegan
Vétéran
Membre # 1636

 
Lieu : Area51

Messages :
3212 (0.52 par jour)


Score :

Message du 17-10-2016 @ 21:22   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Merci pour ta réponse...
Le souci c'est que la tache disparait de manière aléatoire et que je n'ai aucune raison de -par exemple- rebooter périodiquement ce RPi. Sans compter que comme c'est aléatoire, ca ne serait pas une solution.
Tout ce que j'ai trouvé pour l'instant concerne le fait de relancer des services et pas de simples process. D'où cette question ;)

----------
Amicalement vôtre
- Haut de page -
nuts
Vétéran
Membre # 1869

 Avatar du membre
Lieu : Alsace

Messages :
11293 (1.85 par jour)


Score :

Message du 18-10-2016 @ 7:15   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Justement, ton script doit tourner en boucle pour veiller a intervalle régulier que ton process tourne toujours, et sinon le relancer
----------
PC: Phenom 2 X2 3.2GHz@3.7GHz, 10Go ddr, caviar 500Go sata, Radeon 7790 GHz Edition, ArchLinux, Win10 pro 64bits
Station Silicon Graphics Octane R10000 250MHz, 384Mo de Ram, 8.5Go SCSI, IRIX 6.5.30
Netbook Acer AspireOne Intel atom n270 1.6GHz, 1Go de RAM; 160Go, Arch 32bits
Xbox360 Gamertag "xylphute"
- Haut de page -
Vegan
Vétéran
Membre # 1636

 
Lieu : Area51

Messages :
3212 (0.52 par jour)


Score :

Message du 18-10-2016 @ 10:22   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

oui, on est d'accords :)
Parlons concret:

Code :


#!/bin/sh
while true; do
   A=`pidof /usr/local/bin/auroramon`
   if [ -z "$A" ]; then
      echo "y'a pas de process"
      nohup /usr/local/bin/auroramon >~/aurora/logexecaurora.log &
   else
      echo "nous avons un PID!"
      sleep 30
   fi
done


l'ennui c'est qu'avec ce code,
1- je n'ai pas l'interface graphique de mon soft
2- sauf si je le lance dans une console (EDIT: sous X), à la main, mais je préférerais automatiser... (par exemple en cas de redémarrage inopiné du RPi).
3- si je passe par un cron, je n'ai pas cette interface

Bref, si vous avez des suggestions, je suis preneur ;)
Merci :)

[message édité le 18-10-2016 @ 10:58 Par Vegan]
----------
Amicalement vôtre
- Haut de page -
bEsTiAn
Le fauve du forum
Membre # 6846

 Avatar du membre
Lieu : Neigembos

Messages :
13220 (2.37 par jour)


Score :

Message du 18-10-2016 @ 10:37   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

je me servirais plutot de cron
un process permanent pourrait aussi s'arreter un jour sans raison
----------
chwi fatigué...
HP 2540p + HP 650g1
puis un iPad 2 (bêêêrk) pour ma fille
- Haut de page -
Vegan
Vétéran
Membre # 1636

 
Lieu : Area51

Messages :
3212 (0.52 par jour)


Score :

Message du 18-10-2016 @ 10:58   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Merci!

Donc, devrais-je:
1) lancer avec cron mon auroramon toutes les 30s? je suppose qu'il y a alors une option pour ne pas dupliquer les process?
2) lancer ce script avec cron, toutes les xx s, uniquement la partie qui vérifie si le process existe et le relance sinon?

L'ennui c'est qu'avec Cron, je n'ai pas acces à l'interface graphique (si?)

Avec Raspbian, j'ai la possibilité de lancer des scripts ou programmes en ouverture de session graphique, en ajoutant un fichier de config dans ~/.config/autostart/ (fichier .desktop paramétrant l'application)
Mais en effet, ca ne me garantit pas que mon script reparte en cas de crash.
----------
Amicalement vôtre
- Haut de page -
bEsTiAn
Le fauve du forum
Membre # 6846

 Avatar du membre
Lieu : Neigembos

Messages :
13220 (2.37 par jour)


Score :

Message du 18-10-2016 @ 11:24   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

non, cron c'est juste chaque minute, on ne peut pas descendre
il ne faut pas lancer un script qui va rester en tache de fond
il faut utiliser cron pour monitorer et relancer le programme, chaque minute

au lieu d'avoir un script qui fait une boucle et qui dort 30 secondes tout le temps

en gros la partie entre ton "while do" et ton "done"

----------
chwi fatigué...
HP 2540p + HP 650g1
puis un iPad 2 (bêêêrk) pour ma fille
- Haut de page -
Vegan
Vétéran
Membre # 1636

 
Lieu : Area51

Messages :
3212 (0.52 par jour)


Score :

Message du 18-10-2016 @ 11:39   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

ok!
Par contre, ca ne résoud pas mon souci d'affichage... je suppose qu'il faut une commande pour envoyer la sortie sur un display? je ne maitrise pas encore trop... l'ennui est qu'ici, l'utilisateur n'est pas forcément loggé quand cron est actif...


----------
Amicalement vôtre
- Haut de page -
bEsTiAn
Le fauve du forum
Membre # 6846

 Avatar du membre
Lieu : Neigembos

Messages :
13220 (2.37 par jour)


Score :

Message du 18-10-2016 @ 12:58   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

faut tourner le job cron sous le profil de l'utilisateur
c'est toujours le meme qui se connecte ou pas ?
tu peux faire un check dans le job, savoir si le user est connecté ou pas, avant de lancer ca
----------
chwi fatigué...
HP 2540p + HP 650g1
puis un iPad 2 (bêêêrk) pour ma fille
- Haut de page -
Vegan
Vétéran
Membre # 1636

 
Lieu : Area51

Messages :
3212 (0.52 par jour)


Score :

Message du 18-10-2016 @ 15:04   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

je ne suis pas sûr de comprendre:
- définir le user dans le cron job? ou lancer une commande cron depuis une session X de l'utilisateur? ou ?

quand je dis "pas connecté", je préfère nuancer:
- actuellement, sur le raspberry pi, le user est toujours le même et la session X est automatiquement lancée (install Raspbian classique)
- j'aimerais rendre le systeme portable vers d'autres distro (ou machines): j'aimerais que le programme tourne, que l'utilisateur lié soit logué ou pas. Par contre, s'il se logue qu'il puisse voir l'interface graphique du soft (en cours de fonctionnement, pas relancé pour la circonstance).
Cette partie est plus "bonus" pour l'instant: je voudrais déjà que ca tourne ;)

Merci encore :)

PS: actuellement, j'ai lancé le script ci-dessus depuis ./config/autostart/startscript.desktop, avec le contenu suivant:
Code :


[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Auroramon
Comment=
Exec=~/scripts/startscript.sh
StartupNotify=false
Terminal=false
Hidden=false



et depuis le shutdown -r now, je n'ai plus d'acces à distance (je faisais tout via SSH+VNC) :mur:

[message édité le 18-10-2016 @ 15:13 Par Vegan]
----------
Amicalement vôtre
- Haut de page -
bEsTiAn
Le fauve du forum
Membre # 6846

 Avatar du membre
Lieu : Neigembos

Messages :
13220 (2.37 par jour)


Score :

Message du 18-10-2016 @ 15:24   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

--> "cron -e -u user"
----------
chwi fatigué...
HP 2540p + HP 650g1
puis un iPad 2 (bêêêrk) pour ma fille
- Haut de page -
Vegan
Vétéran
Membre # 1636

 
Lieu : Area51

Messages :
3212 (0.52 par jour)


Score :

Message du 18-10-2016 @ 15:32   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

et pour l'affichage graphique?

Citation

Si vous avez besoin d'une interface graphique par exemple pour utiliser zenity, kdialog, dialog ou encore totem, vlc, … Il vous faudra effectuer plusieurs choses : 1° ajouter un DISPLAY=:0 devant la commande dans le cron. Exemple :

*/5 * * * * DISPLAY=:0 zenity --info --text="Toto va bien"


source: https://doc.ubuntu-fr.org/cron

J'ai hâte de tester! Merci! :)


[message édité le 18-10-2016 @ 15:33 Par Vegan]
----------
Amicalement vôtre
- Haut de page -
bEsTiAn
Le fauve du forum
Membre # 6846

 Avatar du membre
Lieu : Neigembos

Messages :
13220 (2.37 par jour)


Score :

Message du 18-10-2016 @ 16:08   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

aucuen idée. je n'installe jamais l'interface graphique sur mes serveurs Linux/Unix (sauf pour installer Oracle... bete truc).
----------
chwi fatigué...
HP 2540p + HP 650g1
puis un iPad 2 (bêêêrk) pour ma fille
- Haut de page -
Vegan
Vétéran
Membre # 1636

 
Lieu : Area51

Messages :
3212 (0.52 par jour)


Score :

Message du 19-10-2016 @ 15:36   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Petit retour:

- la partie cron fonctionne comme attendu (relance toutes les x minutes d'un script)
- par contre, pas d'affichage graphique, donc pour ce script précis, ca ne marche pas.

la ligne ajoutée avec crontab -e:
*/10 * * * * env DISPLAY:=0 /usr/local/bin/startaurora.sh

pas d'erreur dans /var/log/syslog
taper un "xhost +" ne permet pas d'avoir l'affichage graphique du soft. Par contre, j'ai une erreur:
PUTTY X11 proxy: unable to connect to forwarded X server: Network error: Connection refused
xhost: unable to open display "localhost:10.0"

Actuellement, j'utilise le forward X11 dans putty (vers localhost:0) et je me connecte graphiquement avec VNC (sur localhost:5901)

Z'avez des idées?... merci...
----------
Amicalement vôtre
- Haut de page -
Vegan
Vétéran
Membre # 1636

 
Lieu : Area51

Messages :
3212 (0.52 par jour)


Score :

Message du 19-10-2016 @ 16:04   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Youpie! ça marche, mais j'ignore pourquoi...
Ligne du crontab:
*/10 * * * * env DISPLAY=:1 /usr/local/bin/startaurora.sh

Il me reste un message d'erreur:
XLib: extension "RANDR" missing on display ":1"

Par contre, j'ignore si ca marche en local (sur un moniteur directement branché en HDMI)...

[message édité le 19-10-2016 @ 16:19 Par Vegan]
----------
Amicalement vôtre
- Haut de page -
stackware
Inutile, mais indispensable :)
Membre # 6403

 Avatar du membre
Lieu : Paris

Messages :
9518 (1.7 par jour)


Score :

Message du 14-12-2016 @ 18:38   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Salut Vegan,
C'est du déterrage, mais en googlisant : peut-être une solution à l'erreur?
----------
Nul n'est jamais assez fort pour ce calcul

Visitez le Site Officiel du V Paris et des Vx

Fractal R5 Titanium; i7 3770K; Asus P8Z77-V; Corsair DDR3-1600 8Go ; M4 512 Go + Toshiba 4To ; Asus GTX 780 DirectCU II (Spook inside); BenQ EW2730V 27''; Win X Home; Netgear R7000
- Haut de page -
Vegan
Vétéran
Membre # 1636

 
Lieu : Area51

Messages :
3212 (0.52 par jour)


Score :

Message du 11-01-2017 @ 10:01   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

sympa, merci, j'y regarderai :)

(je viens seulement de voir ton post...)
----------
Amicalement vôtre
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.075 secondes