Skip to content
Snippets Groups Projects
Commit 69f68505 authored by Yang Tse's avatar Yang Tse
Browse files

startnew() shouldn't return a positive pid as reported in the pidfile

by the spawned server itself unless it is actually alive
parent 9c7d4394
No related branches found
No related tags found
No related merge requests found
......@@ -297,7 +297,7 @@ sub startnew {
logmsg "startnew: $cmd\n" if ($verbose);
my $child = fork();
my $pid2;
my $pid2 = 0;
if(not defined $child) {
logmsg "startnew: fork() failure detected\n";
......@@ -336,8 +336,7 @@ sub startnew {
my $count = $timeout;
while($count--) {
if(-f $pidfile) {
open(PID, "<$pidfile");
if(-f $pidfile && -s $pidfile && open(PID, "<$pidfile")) {
$pid2 = 0 + <PID>;
close(PID);
if(($pid2 > 0) && kill(0, $pid2)) {
......@@ -346,6 +345,8 @@ sub startnew {
# similar!
last;
}
# invalidate $pid2 if not actually alive
$pid2 = 0;
}
if (checkdied($child)) {
logmsg "startnew: child process has died, server might start up\n"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment