# Script VI



## Pierre Bouvier (25 Septembre 2001)

Bonjour

pour approfondir le terminal et VI j'aimerai faire un ou deux scripts.

Voilà actuellement si je change le fichier inetd.conf, pour mettre à jour je dois faire

*kill -HUP PID* PID étant le numéro du process que l'on peut connaitre par *ps -ax | grep inetd*

je voudrais faire un script pur relancer le service inetd d'un coup.

On peut récupérer le pid du service grâce à la commande

*ps -acx | grep inetd | cut -c "1-4"*

mais ensuite comment récupérer la valeur obtenue pour l'écrire derrière *kill -HUP*.

Voilà  mon problème

Pierre


----------



## Membre supprimé 2 (25 Septembre 2001)

voila  comment du peux faire:

*#!/bin/sh
PID = `ps -acx | grep inetd | awk '{print $1}'`
kill -HUP $PID*

c'est pas la seule solution

[25 septembre 2001 : message édité par William]


----------



## Pierre Bouvier (25 Septembre 2001)

si j'écris PID = .....
à l'execution, il me répond que la commande PID est introuvable ?

Pierre


----------



## Membre supprimé 2 (25 Septembre 2001)

tu mets bien le contenu de script dans un fichier rendu executable?

PID est une simple variable

PID est l'equivalent d'un pointeur, tu accedes a sa valeur par $PID


----------



## Membre supprimé 2 (26 Septembre 2001)

tu as raison, 

*#!/bin/sh
for PID in `ps -acx | grep inetd | awk '{print $1}'`; do
        KILL -HUP $PID;
done
*
la ca devrais aller,
ou encore

en ramplacant 

*PID = *

par 

*setenv PID * (sans =)

[25 septembre 2001 : message édité par William]


----------



## Pierre Bouvier (26 Septembre 2001)

désolé cela ne marche toujours pas

Pierre


----------



## Membre supprimé 2 (26 Septembre 2001)

Quel est le message d'erreur?
Il faut faire attention aux cotes

[25 septembre 2001 : message édité par William]


----------



## Pierre Bouvier (26 Septembre 2001)

Voila en utilisant le script et après lancement
(cominetd est le nom du script)

root &gt; ./cominetd

ps -acx | grep inetd | awk {print
KILL: illegal process id: ps
KILL: illegal process id: -acx
KILL: illegal process id: |
KILL: illegal process id: grep
KILL: illegal process id: inetd
KILL: illegal process id: |
KILL: illegal process id: awk
KILL: illegal process id: {print

}
KILL: illegal process id: }

j'ai bien mis les cotes

#!/bin/sh
for PID in 'ps -acx | grep inetd | awk '{print $1}'';do
KILL -HUP $PID;
done

c'est bien ainsi que tu l'as écrit ?

Pierre


----------



## Membre supprimé 2 (26 Septembre 2001)

Non, tu a un probleme de cote

autour du awk c'est celle la ' 
autour de toute la commande c'est celle la `

j'espere que la difference est visible...


----------



## Pierre Bouvier (26 Septembre 2001)

oui là ça marche

merci de ta patience

mais en fait j'ai fait un copier coller car le caractère `, je ne sais pas le faire au clavier ?!?!

Pierre


----------



## Membre supprimé 2 (26 Septembre 2001)

Pour tout dire, je travaille sur solaris avec un clavier US
Sur un mac clavier francais, (y en a un a cote)
le ` est sur la meme touche que le 4
et le ' est sous le symbole livre, sous $


----------



## Pierre Bouvier (26 Septembre 2001)

sur mon clavier le ' est sous le 4 et le ` est une touche morte qui ne fonctionne pas dans le terminal. Dommage

Pierre


----------



## Membre supprimé 2 (26 Septembre 2001)

oui, c'est comme le ~ pourtant bien utile...

William


----------

