Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1530 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Solution pour mettre en pause et relancer processus par nom

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Solution pour mettre en pause et relancer processus par nom

n°1361368
dj smelz
Posté le 24-07-2014 à 03:23:57  profilanswer
 

Bonjour à tous  
 
 
je suis à la recherche d'une solution pour mettre en pause automatiquement un processus (dont je ne connais que le nom), puis de la relancer automatiquement
 
Voila la structure de mon "dispositif" :
1 - j'ai 1 processus de fond qui tourne (avec l'utilitaire screen) en continu (24h/24)
2 - j'ai 1 un programme écrit en python qui lance des calculs (basés sur de l'astronomie). Ces calculs me retournent des heures qui sont ensuite envoyé dans le crontab pour execution d'une commande particulière.
La commande qui s'execute est la même que celle en tache de fond (1) mais avec des arguments différents.  
Le programme s'execute chaque jour (il est recursif dans le crontab).
 
Le soucis, c'est que la tache de fond et les taches lancées par le crontab sont incompatible.
J'ai donc besoin de mettre en pause le processus de fond, de laisser tourner les commandes générées par crontab (je connais leur temps d'execution) et de relancer la tâche de fond
 
 
Je ne sais pas si c'est très clair.
Pour simplifier de façon concrète:
 
1 - TF1 diffusé par (disons : mplayer -chaine TF1) 24h/24 sur l'écran.
2 - des calculs (d'un script python) lancent FR2 (disons : mplayer -chaine FR2) à certains moments de la journée (qui durent tous maximum 10mn).
 
Je ne peux pas regarder TF1 et FR2 en meême temps.  
J'ai donc besoin de mettre pause TF1 lorsque le crontab lance FR2 pendant 10mn.  
Lorsque FR2 est fini (ou que la durée max est dépassé), il me faut poursuivre TF1 (à partir de l'endroit où il s'était mis en pause)
 
 
 
Je sais trouvé un processus mais je ne sais pas comment allez + loin.
A priori, je n'ai qu'un seul procesus de ce nom qui tourne.
ps aux | grep process1 => Comment virer l'affichage du PID du "grep" et ensuite comment extraire le pid restant de façon à pouvoir le mettre en pause et ensuite le relancer plus tard?  
 
Merci pour votre aide. :jap:

mood
Publicité
Posté le 24-07-2014 à 03:23:57  profilanswer
 

n°1361385
goblin_rie​ur
ingé systemes unix
Posté le 24-07-2014 à 10:41:22  profilanswer
 

faut voir dans la doc Mplayer si y'a moyen de le scripter en interne genre fichier .mplayer/tonfichier.rc
ou trouver un lecteur qui le fait (d'avoir un langage interne de script ou basé sur un fichier)
 
sinon :  
 
y'a plusieurs façon de faire  
1. la bonne et la moins pratique en analyse est d'utiliser le PID système.
2. lancer tes commandes avec des scripts et non pas des commandes nues permettant ainsi de faire le lien dans /var/run entre le numero de processus et TON NUMERO A TOI ou un nom à toi de programme
3. tu peux aussi (autre methode encore) lancer toutes les chaines en pause au démarrage de ton application et avoir un script qui monte en actif la chaine que tu veux voir par defaut et qui bascule vers une autre quand tu appuies sur un bouton de la GUI que tu aura faite ou encore une intereception de touche clavier.
 
enfin  il y a qd même des question de logiques de fonctionnement à la base qui se pose sur ton cas.
 
Pourquoi utiliser 2 modes de démarrage différent de lecture des chaines ?
Pourquoi tu fais pas tout simplement comme un utilisateur normal c'est à dire tu fait pause sur la vidéo en cours... tu lances l'autre.... tu bascule sur la première et tu la dé-pause.... ???
 
 
 
 
quand aux scripts eux même  
suffit d'utiliser  
Pour dire à un processus de s’arrêter temporairement, puis de redémarrer, il faut envoyer les signaux SIGSTOP pour l’arrêter, et SIGCONT pour lui dire de continuer :
 
kill -SIGSTOP $pid # Stop
kill -SIGCONT $pid # Start
 
ou par les noms avec killall  
What about these more useful commands:
killall -s STOP xeyes
killall -s CONT xeyes


Message édité par goblin_rieur le 24-07-2014 à 15:01:11

---------------
Collectionner les vieux serveurs c'est chouette mais c'est lourd et ça prend de la place ;)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Solution pour mettre en pause et relancer processus par nom

 

Sujets relatifs
C , Unix , ProcessusCluster MariaDB ? Percona ? Mysql ?
solution serveur DNS : bind, powerdns ou nsd ?Mettre en place un cluster linux
Comment mettre une application en fond et agir dessus ?Mettre à jour roundcube version 0.8 ou + sur Debian
quelle solution pour voip cryptee entre 2 postes distants?Cherche solution pour transferts automatisés ou répertoires syncro
solution P2V pour debian 
Plus de sujets relatifs à : Solution pour mettre en pause et relancer processus par nom


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR