The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
script pour surveiller les processus actifs sur le serveur et l'affichage un mail si un processus est mort pradeepmacha De programmation et de script Shell 13 03-06-2009 07:33 AM
Un enfant peut-il un processus de retour de valeur à un processus parent? Ametis1970 High Level Programming 8 04-10-2008 12:22 AM
Meurtre d'un processus et d'envoyer un mail si le processus doesnot trouver dans les 2 minutes Prince89 De programmation et de script Shell 1 02-15-2008 07:10 PM
la façon de démarrer un processus et rendre le sommeil pendant 5 minutes, puis de tuer ce processus shrao De programmation et de script Shell 6 03-27-2007 01:54 PM
mon processus est en cours en mode veille après 12 heures, mais j'ai besoin de mon processus de firsy en pr mukesh_rakesh1 UNIX for Advanced & Expert Users 0 09-05-2006 03:43 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 02-07-2007
mpang_ mpang_ is offline
Registered User
  
 

Join Date: Mar 2006
Posts: 89
processus

Salut, j'ai un travail que je dois à toutes les 15 minutes, cependant, j'ai besoin de faire en sorte que l'emploi précédent (15 minutes) est effectué avant de pouvoir commencer une nouvelle, comment puis-je faire? THANK YOU SO MUCH!
  #2 (permalink)  
Old 02-07-2007
Bofh BOFH is offline Forum Advisor  
Registered User
  
 

Join Date: Feb 2005
Lieu: Broomfield, CO
Messages: 406

Code:
#!/bin/ksh

PID=$$

if [[ -f /var/run/script.pid ]]
then
  OLDPID=`cat /var/run/script.pid`
  RUNNING=`ps -e | grep $OLDPID`
  if [[ ! -z "$RUNNING" ]]
  then
    exit 1
  fi
fi

echo $PID > /var/run/script.pid

# your code here

if [[ -f /var/run/script.pid ]]
then
  rm /var/run/script.pid
fi

Carl
  #3 (permalink)  
Old 02-07-2007
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
Modérateur
  
 

Join Date: Oct 2003
Lieu: -31.96,115.84
Posts: 1,409
Utilisez un fichier de verrouillage temporaire contenant l'id du process, par exemple ..
Code:
#!/usr/bin/ksh

LOCKFILE=/tmp/lockfile

#---At the start of your script check to see that a lockfile exists
if [[ -f $LOCKFILE ]]
then
    #----If the lockfile does exist then check that the process is still running
    #     since it may have aborted and left the lockfile behind
    if ps -p $(<$LOCKFILE) >/dev/null
    then
        echo job is still running
        exit
    fi
fi

#---Must be okay to run, so create the lockfile containing the process id
echo $$ > $LOCKFILE

#----Rest of script goes here
:

#----end
rm $LOCKFILE

Non testé.
  #4 (permalink)  
Old 02-08-2007
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Join Date: Mar 2005
Lieu: node feuilles dans les arbres B +
Posts: 2,960
Tout, y compris la pensée de ce que d'une note.


Lors de la création d'un processus de contrôle de lockfiles de frai lorsque le précédent exemple, sont encore en cours.

Il est préférable d'éviter les noms de fichiers et le verrouillage juste de réorienter le processus id du processus pour le fichier de contrôle.

Tout d'abord, si les noms communs sont utilisés, il est fort probable que le même type de convention de nommage (même nom, même pour le verrouillage de fichiers) peut être utilisé par d'autres scripts de même de sorte qu'il utilise le même nom de fichier pour ses besoins propres.

Si l'ID de processus est utilisé comme une valeur dans le fichier de verrouillage, dans un système occupée il ya une forte possibilité que le processus "A" qui fonctionne avec pid -> PID1 est fait avec son nouveau système de travail et peut accorder un nouveau processus de 'B' le même pid -> PID1 et on finit par le contrôle d'un processus qui ne devrait pas être fait.

D'où son mieux pour ajouter un peu plus d'informations, comme id du processus parent ou d'un horodatage, quelque chose comme cela pour garantir l'unicité.

Et la dernière chose est de verrouiller le fichier avec perm bits une fois qu'il est écrit, de sorte que ces processus qui ont tendance à les écraser recevra un message d'erreur. Bien que ce n'est pas garanti de cette manière, c'est un peu à venir.
  #5 (permalink)  
Old 02-08-2007
mpang_ mpang_ is offline
Registered User
  
 

Join Date: Mar 2006
Posts: 89
je vous remercie pour tous vos excellents conseils! Cependant, je voudrais ajouter un détail, j'ai effectivement 2 emplois (en utilisant le même script avec des paramètres différents) en commençant au même moment, en utilisant la méthode prévue serait de travail, y at-il contourner?
  #6 (permalink)  
Old 02-08-2007
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
Modérateur
  
 

Join Date: Oct 2003
Lieu: -31.96,115.84
Posts: 1,409
Changez le nom du fichier de verrouillage en fonction des paramètres, par exemple ..
Code:
LOCKFILE=/tmp/$(basename $0).$(echo $*|tr ' ' '.')

Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 09:57 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0