Mon premier script bash: (c correcte ou) c tout a revoir(? [ver 0.002] - Multimédia - Linux et OS Alternatifs
Marsh Posté le 21-09-2002 à 20:40:57
Oui il est écris correctement MAIS :
-J'utiliserais le contenu du fichier pid, pour faire une seconde vérification sur la présence du processus.
-Quand tu fais un stop : tu n'es pas obligé de vérifier si le processus tourne.
J'ajouterais en fonction du fichier pid et de sa présence, un
status) ou une fonction status() qui retourne une valeur
Marsh Posté le 21-09-2002 à 21:02:53
joli et propre ce script !
pour le exit , retourne plutot le statut d'une execution dans un des choix .
exemple declarer une globale STATUT , puis lui affecter une valeur dans les choix , comme dans "pureftpd pas trouvé" : STATUT=1 et en fin de script tu retournes un exit $STATUT ( tu dois dans ce cas là affecter aussi une valeur en cas de succes ou alors affecter 0 d'office dans la déclaration de la variable)
Marsh Posté le 22-09-2002 à 00:12:30
Ca ne répond sans doute pas à ta question, mais peut-être à tes préoccupations:
http://sourceforge.net/projects/pftpd-sh/
Marsh Posté le 22-09-2002 à 19:13:03
becket a écrit a écrit : Oui il est écris correctement MAIS : -J'utiliserais le contenu du fichier pid, pour faire une seconde vérification sur la présence du processus. -Quand tu fais un stop : tu n'es pas obligé de vérifier si le processus tourne. J'ajouterais en fonction du fichier pid et de sa présence, un status) ou une fonction status() qui retourne une valeur |
g pas trouvé comment faire ca... ya une fonction ki le fait ou fo ke je fasse autrement par un moyen detourné kkonk?
qd a mes preoccupations, faire un script moi meme, c tout
Marsh Posté le 22-09-2002 à 20:50:18
Juste un détail:
je doute fort que le "restart" fonctionne correctement avec ton script
Marsh Posté le 22-09-2002 à 21:11:39
[Albator] a écrit a écrit : Juste un détail: je doute fort que le "restart" fonctionne correctement avec ton script |
je m'en suis appercu apres le post, il a deja ete corrigé
Marsh Posté le 22-09-2002 à 21:16:24
Voici ma nouvelle version du script, a vous de jouer!
Code :
|
Marsh Posté le 22-09-2002 à 21:29:55
Je sais pas si c'est volontaire ou pas, mais appeler une variable "PATH" c'est pas une très bonne idée ...
De plus, j'utiliserais [ -x "$PATH" ] plutot que [ -e $PATH ] .
Sinon, pourquoi utiliser une variable "STATUT" plutot que de faire exit directement ?
Enfin, je ne vois pas à quel endroit tu effaces ton fichier PID.
Marsh Posté le 22-09-2002 à 21:37:10
[Albator] a écrit a écrit : Je sais pas si c'est volontaire ou pas, mais appeler une variable "PATH" c'est pas une très bonne idée ... De plus, j'utiliserais [ -x "$PATH" ] plutot que [ -e $PATH ] . Sinon, pourquoi utiliser une variable "STATUT" plutot que de faire exit directement ? Enfin, je ne vois pas à quel endroit tu effaces ton fichier PID. |
je ne l'efface pas par ce qu'il me semble que pure le fait seul... d'apres les tests ke g pu en faire...
j'utilise statut du au fait ke kkun me la proposé avant
pour le x, c une eventualité... je le modifie de suite, ainsi ke le nom du path
Marsh Posté le 23-09-2002 à 21:07:47
Je verrais plutot quelque chose du genre pour status)
status)
if [ $( ps -C $PROGRAMME -o pid= ) -eq $( cat $PID ) ]
then echo " le programme tourne -> OK"
else
...
fi
Marsh Posté le 23-09-2002 à 21:30:47
becket a écrit a écrit : Je verrais plutot quelque chose du genre pour status) status) if [ $( ps -C $PROGRAMME -o pid= ) -eq $( cat $PID ) ] then echo " le programme tourne -> OK" else ... fi |
en fait je c pas pkoi c pas la derniere version
Marsh Posté le 23-09-2002 à 22:11:26
voici la version 0.002 avec status, et normaleent tout fonctionne... suaf si g encore deconner...
Code :
|
Marsh Posté le 23-09-2002 à 22:45:55
la je capte pas:
Code :
|
il est tel kel, le stop fonctionne, le start fonctionne, mais le restart n'effectu k'un stop
vous savez pkoa?
Marsh Posté le 23-09-2002 à 23:22:10
et si tu met un sleep entre les 2 ( peut etre que le stop/start va trop vite )
faut faire gaffe a un truc aussi avec pureftpd toute nouvelle connection sur le ftp recrée un process ( IDLE UPLOAD ou DOWNLOAD )
et dans le cas d un reload il est plus judicieux de faire un kill -HUP .
Marsh Posté le 23-09-2002 à 23:42:42
houplaboom42 a écrit a écrit : et si tu met un sleep entre les 2 ( peut etre que le stop/start va trop vite ) faut faire gaffe a un truc aussi avec pureftpd toute nouvelle connection sur le ftp recrée un process ( IDLE UPLOAD ou DOWNLOAD ) et dans le cas d un reload il est plus judicieux de faire un kill -HUP . |
ke dalle, g l'impression kil appelle meme pas start
Marsh Posté le 24-09-2002 à 06:53:53
1-
/etc/init.d/$0 stop
/etc/init.d/$0 start
2- Ton status) ne vérifie toujours pas si le numero de pid contenu dans ton fichier pid correspond bien au pid de ton process
3- Comme déjà dit auparavant, quand tu fais stop), tu dois vérifier la supression ou supprimer via ton script le fichier pid
Marsh Posté le 24-09-2002 à 10:50:53
A tous les coups, ton script de démarrage porte le même nom que l'éxécutable qu'il lance, et du coup quand tu fais stop, il se tue lui-même en appelant killall .
C'est pas une bonne idée d'utiliser killall
Marsh Posté le 24-09-2002 à 16:50:58
[Albator] a écrit a écrit : A tous les coups, ton script de démarrage porte le même nom que l'éxécutable qu'il lance, et du coup quand tu fais stop, il se tue lui-même en appelant killall . C'est pas une bonne idée d'utiliser killall |
c ke t pas con toa....
un petit kill $(<$PID) alors...?
Marsh Posté le 24-09-2002 à 16:52:06
becket a écrit a écrit : 1- /etc/init.d/$0 stop /etc/init.d/$0 start 2- Ton status) ne vérifie toujours pas si le numero de pid contenu dans ton fichier pid correspond bien au pid de ton process 3- Comme déjà dit auparavant, quand tu fais stop), tu dois vérifier la supression ou supprimer via ton script le fichier pid |
comme je te l'ai deja dit le fichier pid est supprimé deja, pas par moi
Marsh Posté le 24-09-2002 à 19:16:45
Rappeler ton script dans le restart, c'est pas une bonne idée. Ecrit plutôt une fonction qui fait le start, une fonction qui fait le stop, et appelle ces deux fonctions dans le restart. Ca donnerait qq chose du genre :
Code :
|
Austre chose : tu n'est pas obligé de mettre de ";" au bout de ta ligne si tu met le then sur une autre ligne. Par contre si tu le met, tu peux mettre le le then à la suite.
Marsh Posté le 19-09-2002 à 20:56:08
il fonctionne bien mais je c pas si il est ecrit correctement...
Message édité par leirn le 23-09-2002 à 22:50:35
---------------
"Je brandirai une épée d'orichalque, je m'assouvirai sur des Templiers." | "Avec dans son sillage l'Ombre du Diable, Leirn appelait les morts pour une danse macabre et déchainaît les horreurs de la nuit..."