cron, shutdown et moi

cron, shutdown et moi - Linux et OS Alternatifs

Marsh Posté le 11-12-2003 à 16:54:31    

Voila, j'ai un problème :  
ma mère oublie parfois d'éteindre sa machine.
Ma solution : un script, en perl, qui regarde s'il y a quelqu'un de connecté. Si oui, rien ne se passe, sinon, la machine est coupée.
 
Mon problème concernant ma solution : le script à l'air de marcher normalement, mais quand je le met dans le cron du root, la machine n'est pas éteinte !
 
voici le script :  

Code :
  1. #!/usr/bin/perl -w
  2. open(CONNECTE, "users|" );
  3. $nb_users = 0;
  4. while(<CONNECTE> ) {
  5.     $nb_users++;
  6. }
  7. close CONNECTE;
  8. open(PLOP, "|touch /tmp/nb_users_logged_".$nb_users);
  9. close PLOP;
  10. if($nb_users == "0" ) {
  11.     open(PLOP, "|touch /tmp/deconnect_launch" );
  12.     close PLOP;
  13.     system("shutdown -h 5 'Rivendell vas se deconnecter, il faut aller dormir'" );
  14. }


 
le crontab du root :
 

Code :
  1. 0 0 * * * /root/bin/deconnect


 
Ce qui ce passe : j'ai bien le 'touch' qui est fait, mais il n'arrête pas la machine (donc il est bien d'accord qu'il n'y a personne de connecté)
j'ai essayé d'autre manière d'appelé shutdown (dans un "open", comme pour le "touch" ) mais rien n'y fait. Je ne vois pas trop mon erreur, si quelqu'un peut m'aidé, d'avance merci

Reply

Marsh Posté le 11-12-2003 à 16:54:31   

Reply

Marsh Posté le 11-12-2003 à 17:00:44    

euh  
users | wc -w et voilà
 
open(PLOP, "|touch /tmp/nb_users_logged_".$nb_users);
close PLOP;
 
euh magnifique le touch
 
 
remplace le dernier system par un exc*
 
 
fais ça en shell ça sera plus simple :D
 

Reply

Marsh Posté le 11-12-2003 à 17:53:46    

Taz a écrit :


fais ça en shell ça sera plus simple :D
 


 
+1

Reply

Marsh Posté le 11-12-2003 à 20:47:42    

improvisation:
 

Code :
  1. if [ ! -z "$(users)" ]
  2.   then
  3.     touch /tmp/nb_users_logged.$(users | wc -w)
  4.   else
  5.     touch /tmp/deconnect_launch
  6.     /sbin/shutdown -h 5 'bye'
  7. fi

Reply

Marsh Posté le 11-12-2003 à 22:15:17    

Citation :

euh magnifique le touch


 
oui, j'ai un bon touché, merci :)
 
merci pour ces réponses, je vais essayer de le faire en shell

Reply

Sujets relatifs:

Leave a Replay

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