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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  script qui se bloque au bout de quelque minute

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

script qui se bloque au bout de quelque minute

n°1392338
sisr95
Posté le 15-07-2016 à 23:00:06  profilanswer
 

Bonjour,
j'ai créé un script. ce script est censé tourné à l'infini jusqu'au redémarrage du serveur. Mais le problème est qu'il ne tourne plus au bout de quelque minute, heure. c'est aléatoire. En fait quand je regarde les process, je me rend compte qu'une autre instance de mon script se créer après un temps aléatoire et quand cet instance se créer mon script arrête de fonctionner. Pouvez me dire pourquoi il y a une autre instance qui se créer alors que j'ai rien demandé ? j'ai essayer de créer un script qui fait une boucle à l'infini et qui écrit ce nombre dans un fichier et c'est pareil à un moment il arrête d’écrire car le processus est dupliqué. help pls

mood
Publicité
Posté le 15-07-2016 à 23:00:06  profilanswer
 

n°1392340
Fork Bomb
Obsédé textuel
Posté le 16-07-2016 à 09:11:30  profilanswer
 

Et sinon, le script en lui-même, on peut le voir ?


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1392341
francoisp3​1
Posté le 16-07-2016 à 09:48:51  profilanswer
 

comment sait tu qu il est  dupliqué ?  
comment ton script est il démarré ? (méthode)
comment fais tu un boucle infinie ?
 
faire une boucle infinie est conceptuellement une connerie.
si tu a besoin qu une action soit infinie tu fais un daemon-like avec to script
 
as tu au moins pense a regarder si il bloque pas parce qu il écrit sur un fs full ou un fichier déjà ouvert avec un fs qui bufflerise trop (ordre d ecriture)?
 

n°1392368
sisr95
Posté le 16-07-2016 à 22:22:36  profilanswer
 

Fork Bomb a écrit :

Et sinon, le script en lui-même, on peut le voir ?


 
voici mon script.
 
#!/bash/bin
 
while [ 1 ]  
 do
 hour=`date +%k`
 #if [ $hour -le 19 ] && [ $hour -ge 7 ]
 #then
 time=`date '+%Y-%m-%d,%H:%M:%S'`
 time2=`date '+%H:%M:%S'`
 status=`/usr2/oneshot/mtcl/role`
 
 if [ $status = "MAIN" ] || [ $status = "STAND-BY" ]    
 then
 
 jct=`sudo -u mtcl /usr2/oneshot/mtcl/tool trkvisu $numeroNoeud | grep "nbr_trunk_busy :  start = " |  cut -d " " -f16 | awk '{ sum += $1 } END { print sum }'`
 
 echo "$time,$jct" >> "/usr4/pmm/""MA$numeroNoeudBis""_his.csv"
 echo "$time2,$jct" >> "/usr4/pmm/""MA$numeroNoeudBis""_tr.csv"
 
 fi
 #fi
 sleep 2
 
 done

n°1392369
sisr95
Posté le 16-07-2016 à 22:24:25  profilanswer
 

francoisp31 a écrit :

comment sait tu qu il est  dupliqué ?  
comment ton script est il démarré ? (méthode)
comment fais tu un boucle infinie ?
 
faire une boucle infinie est conceptuellement une connerie.
si tu a besoin qu une action soit infinie tu fais un daemon-like avec to script
 
as tu au moins pense a regarder si il bloque pas parce qu il écrit sur un fs full ou un fichier déjà ouvert avec un fs qui bufflerise trop (ordre d ecriture)?
 


 
 
je sais que mon scritp est dupliqué (enfin je crois) car au moment ou mon script arrete d'écrire dans le fichier, quand je dans un ps -edf j'ai une autre instance de ce premier script.  
je le lance comme ceci : ./monscript

n°1392382
francoisp3​1
Posté le 17-07-2016 à 16:32:50  profilanswer
 

au vu du script tu ne vois pas 2* ton script avec ps mais le shell et ton script (process parent/fils)
 
man ps
 
:hello:

n°1392418
Profil sup​primé
Posté le 18-07-2016 à 13:45:23  answer
 

ouaip, ce serait pas mal d'avoir aussi une copie de la sortie de ps.
 
quelles peuvent être les valeurs de $status ?
de toutes façons, les variables doivent être entre guillemets !
 
le shebang n'est pas correct.
 
une boucle infinie c'est plutôt while true, même si while [ 1 ] fonctionne, c'est bizarre !

n°1392424
francoisp3​1
Posté le 18-07-2016 à 19:54:12  profilanswer
 

la vraie syntaxe c est meme  
 
while : ; do ..... ; done
 
pour l interopérabilité
 
et ${variable}

n°1392477
phraide
Posté le 20-07-2016 à 18:20:36  profilanswer
 

chelou le bangshe pour commencer


---------------
I'm too old for this shit.
n°1392537
sisr95
Posté le 22-07-2016 à 14:17:50  profilanswer
 

francoisp31 a écrit :

au vu du script tu ne vois pas 2* ton script avec ps mais le shell et ton script (process parent/fils)
 
man ps
 
:hello:


 
 
Quand je fais un "ps -edf | grep script.sh" je vois :
 
root     29162     1  0 Jul11 ?        00:00:05 /bin/bash ./script.sh
root     17984     29162  0 Jul11 ?        00:00:04 /bin/bash ./script.sh
 
Pourquoi j'en vois 2  a votre avis ?

mood
Publicité
Posté le 22-07-2016 à 14:17:50  profilanswer
 

n°1392542
francoisp3​1
Posté le 22-07-2016 à 18:13:29  profilanswer
 

1 pour bash un pour ton script
 
regardes biens les ppid le 29162 est le bash qui appelle ton script  
le 17984 est le precess fils
 
d ailleurs si tu utilises correctement ta bangshell c est totalement inutile  
 

#!/bin/bash


 

n°1392551
Profil sup​primé
Posté le 23-07-2016 à 13:25:00  answer
 

Citation :

d ailleurs si tu utilises correctement ta bangshell

et que tu rends ton script exécutable

Citation :

c est totalement inutile  


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

  script qui se bloque au bout de quelque minute

 

Sujets relatifs
script - read file, locate lines, replace part of lineScript synology
script onduleur nutscript batch de compression automatique fichier
Script de suppression de dossierOpenSSH - FAI bloque certains sites
Aide script modification HTML bashdemarer le daemon ifplugd via un script.
Script BASH pour suppression fichiers multiples (même nom) dans arbo ?Script de sauvegarde raspbian
Plus de sujets relatifs à : script qui se bloque au bout de quelque minute


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