logrotate und apache mal wieder
Posted: 2004-08-11 12:00
hallo,
habe im forum diverse lösungen für das logrotate-apache-problem gefunden, aber irgendwie gibt es keine methode die 100% funkt. :(
nun, habe ich beschlossen nach den logrotate einen script zu starten, das den apache "richtig" reloaded.
_________________________
#!/usr/bin/perl
print "Cleanup apache...";
system("/etc/init.d/apache stop");
sleep 2;
system("killall -9 apache");
sleep 1;
$tmp = `/usr/bin/ipcs -s | grep www-data`;
@tmp= split(/n/,$tmp);
foreach $tmp (@tmp)
{
$tmp =~ s/[ ]{1,}/ /g;
$pid = (split(/ /,$tmp))[1];
system("/usr/bin/ipcrm sem $pid");
}
system("/etc/init.d/apache start");
_________________________
einziges problem bei diesen script: falls kein apache-prozess gefunden wird, bricht das script ab (logischerweise).
gibt es eine möglichkeit das zu umgehen? also, das er nicht abbricht oder ggf den apache einfach startet.
danke und gruss
toppas
habe im forum diverse lösungen für das logrotate-apache-problem gefunden, aber irgendwie gibt es keine methode die 100% funkt. :(
nun, habe ich beschlossen nach den logrotate einen script zu starten, das den apache "richtig" reloaded.
_________________________
#!/usr/bin/perl
print "Cleanup apache...";
system("/etc/init.d/apache stop");
sleep 2;
system("killall -9 apache");
sleep 1;
$tmp = `/usr/bin/ipcs -s | grep www-data`;
@tmp= split(/n/,$tmp);
foreach $tmp (@tmp)
{
$tmp =~ s/[ ]{1,}/ /g;
$pid = (split(/ /,$tmp))[1];
system("/usr/bin/ipcrm sem $pid");
}
system("/etc/init.d/apache start");
_________________________
einziges problem bei diesen script: falls kein apache-prozess gefunden wird, bricht das script ab (logischerweise).
gibt es eine möglichkeit das zu umgehen? also, das er nicht abbricht oder ggf den apache einfach startet.
danke und gruss
toppas