script ou droit ?

script ou droit ? - Linux et OS Alternatifs

Marsh Posté le 21-06-2004 à 12:57:45    

bonjour,
 
j'ai une application que j'aimerai pouvoir tuer avec un script. donc sous putty j'ai essaye de voir si mes parametres sont corrects en tapant cela :  
 

Code :
  1. ps -ef | grep test01 | grep -v grep | awk '{print $2 }'


 
cela me renvoie le n° du process donc tout vas bien.
 
Apres cela je cree un fichier que je nomme "arret" pour automatiser tout cela, le fichier contient cela :
 

Code :
  1. PID=$(ps -ef | grep test01 | grep -v grep | awk '{print $2 }')
  2. kill -9 $PID
  3. echo "process fini !"
  4. exit


 
quand lance "arret" par la commande ./arret cela me donne :
 
: no such pid: 2792
process fini !
: command not found
: command not found
: command not found
: command not found
 
ou est le problème ? dans le fichier ou dans les droits ? je ne trouve pas donc si vous avez une idee ......
 
 
 

Reply

Marsh Posté le 21-06-2004 à 12:57:45   

Reply

Marsh Posté le 21-06-2004 à 15:39:56    

Pourquoi pas killall -9 test01 ?
 
Et d'ailleurs pourquoi tuer aussi sauvagement une appli ?

Reply

Marsh Posté le 21-06-2004 à 15:56:13    

afin qu'elle comprenne qui est le maitre.  
 
un petit kill -SIGTERM $pid avant peut-être ? :o

Reply

Marsh Posté le 21-06-2004 à 16:15:26    

belinda a écrit :

bonjour,
 
j'ai une application que j'aimerai pouvoir tuer avec un script. donc sous putty j'ai essaye de voir si mes parametres sont corrects en tapant cela :  
 

Code :
  1. ps -ef | grep test01 | grep -v grep | awk '{print $2 }'


 
cela me renvoie le n° du process donc tout vas bien.
 
Apres cela je cree un fichier que je nomme "arret" pour automatiser tout cela, le fichier contient cela :
 

Code :
  1. PID=$(ps -ef | grep test01 | grep -v grep | awk '{print $2 }')
  2. kill -9 $PID
  3. echo "process fini !"
  4. exit


 
quand lance "arret" par la commande ./arret cela me donne :
 
: no such pid: 2792
process fini !
: command not found
: command not found
: command not found
: command not found
 
ou est le problème ? dans le fichier ou dans les droits ? je ne trouve pas donc si vous avez une idee ......


 
Dans un script utilise dans path complets ex /bin/ps, /bin/grep
eventuellement en les stockant dans des variables. Ca evite les blagues avec les alias.
 


#!/bin/bash
 
#recherche pid
PID=$(/bin/ps -ef | /bin/grep [t]est01 | /usr/bin/awk '{print $2}'}
 
if [ -n "$PID" ]; then
   /bin/kill -SIGKILL $PID
   echo "Processus tué"
else
   echo "Processus introuvable"
fi


 
 
Sinon tu devrait regarder tu coté de pgrep/pkill et killall

Reply

Marsh Posté le 21-06-2004 à 17:48:31    

en fait le fichier "arret" se trouve dans "/home/essai", donc je suppose qu'il faut que le user "essai" ai les droits pour exécuter le kill du process et c'est peut etre là que je coince.
 
donc si vous avez une solution, merci

Reply

Marsh Posté le 21-06-2004 à 17:57:47    

mettre le suid qui va bien sur le script arret?

Reply

Marsh Posté le 21-06-2004 à 18:01:58    

j'ai mis le suid sur "root" donc normalement ca devrait marcher mais quand je fais cela et que je me connectes sous putty avec le login "essai" eh bien il me dit "no such pid" alors qu'en me connectant sous putty en root il me trouve le pid.......!!!!!!

Reply

Marsh Posté le 21-06-2004 à 18:17:33    

Le suid ne marche pas sur les scripts.

Reply

Marsh Posté le 21-06-2004 à 18:19:06    

mince je savais pas ca ! alors là je sais pas comment faire pour donner les droits pour que ce user puisse lancer ce script !!!

Reply

Marsh Posté le 21-06-2004 à 18:20:58    

sudo :o

Reply

Marsh Posté le 21-06-2004 à 18:20:58   

Reply

Marsh Posté le 21-06-2004 à 18:29:08    

oups! [:arg]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed