script qui se bloque au bout de quelque minute - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 16-07-2016 à 09:11:30
Et sinon, le script en lui-même, on peut le voir ?
Marsh Posté le 16-07-2016 à 09:48:51
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)?
Marsh Posté le 16-07-2016 à 22:22:36
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
Marsh Posté le 16-07-2016 à 22:24:25
francoisp31 a écrit : comment sait tu qu il est dupliqué ? |
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
Marsh Posté le 17-07-2016 à 16:32:50
au vu du script tu ne vois pas 2* ton script avec ps mais le shell et ton script (process parent/fils)
man ps
Marsh Posté le 18-07-2016 à 13:45:23
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 !
Marsh Posté le 18-07-2016 à 19:54:12
la vraie syntaxe c est meme
while : ; do ..... ; done
pour l interopérabilité
et ${variable}
Marsh Posté le 20-07-2016 à 18:20:36
chelou le bangshe pour commencer
Marsh Posté le 22-07-2016 à 14:17:50
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) |
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 ?
Marsh Posté le 22-07-2016 à 18:13:29
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 |
Marsh Posté le 23-07-2016 à 13:25:00
Citation : d ailleurs si tu utilises correctement ta bangshell |
et que tu rends ton script exécutable
Citation : c est totalement inutile |
Marsh Posté le 15-07-2016 à 23:00:06
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