[linux] voorkomen dat een proces twee keer start.

Ronald Nooij ronald op ronsoft.nl
Ma Jun 19 16:40:08 CEST 2006


Allen....

Ik heb perl script gemaakt dat maar één keer mag draaien. Het is dus niet
toegestaan om een twee instaties op te starten.

Nu wilde ik even kijken of jullie het eens zijn met mijn oplossing, of dat ik
het beter anders aan kan pakken.


####code van het GRIDrun perl script####


#!/usr/bin/perl
$processList = `ps -ef | awk '/GRIDrun/ && !/awk/ && !/$$/'`;
$processList =~ s/  / /;
@procs = split(/ /, $processList);
$prevGridPID = $procs[2];

if ($prevGridPID > 0)
{
   print "GRID is already running with PID: $prevGridPID\n";
   exit(0);
}

print "GRID is not running so I can savely start it\n";



## nu volgen de overige regels perl script, die niet van bealgn zijn voor mijn
vraag ###



Na wat testen werkt het prima. Het negeert zichzelf in de "ps -ef" listing (door
het toevoegen van "&& !/$$/")  zodat het script niet DENKT dat hij al draait,
omdat hij in werkelijk zichzelf ziet in de ps listing.
Tevens heeft hij ook geen problemen met dubbele spaties, door PIDs die kleiner
zijn dan 5 cijfers.

Groetjes,

Ronald





More information about the Linux mailing list