make sure the ipv6 http server gets its pid stored in a separate file

This commit is contained in:
Daniel Stenberg 2004-12-14 21:52:16 +00:00
parent 1faef62d59
commit dc28a9c0c1
3 changed files with 19 additions and 10 deletions

View File

@ -7,6 +7,7 @@ my $verbose=0; # set to 1 for debugging
my $dir=".";
my $port = 8999; # just a default
my $ipv6;
my $pid=".http.pid"; # name of the pidfile
do {
if($ARGV[0] eq "-v") {
$verbose=1;
@ -15,6 +16,10 @@ do {
$dir=$ARGV[1];
shift @ARGV;
}
elsif($ARGV[0] eq "-p") {
$pid=$ARGV[1];
shift @ARGV;
}
elsif($ARGV[0] =~ /^(\d+)$/) {
$port = $1;
}
@ -23,4 +28,4 @@ do {
}
} while(shift @ARGV);
exec("server/sws $ipv6$port $dir");
exec("server/sws --pidfile $pid $ipv6$port $dir");

View File

@ -346,7 +346,6 @@ sub runhttpserver {
$nameext="-ipv6";
}
$pid = checkserver($pidfile);
# verify if our/any server is running on this port
@ -391,7 +390,7 @@ sub runhttpserver {
if($dir) {
$flag .= "-d \"$dir\" ";
}
$cmd="$perl $srcdir/httpserver.pl $flag $port $ipv6 &";
$cmd="$perl $srcdir/httpserver.pl -p $pidfile $flag $port $ipv6 &";
system($cmd);
if($verbose) {
print "CMD: $cmd\n";

View File

@ -728,11 +728,12 @@ int main(int argc, char *argv[])
int sock, msgsock, flag;
unsigned short port = DEFAULT_PORT;
FILE *pidfile;
char *pidname= (char *)".http.pid";
struct httprequest req;
int rc;
int arg=1;
if(argc>1) {
int arg=1;
while(argc>arg) {
if(!strcmp("--version", argv[arg])) {
printf("sws IPv4%s\n",
#ifdef ENABLE_IPV6
@ -743,20 +744,24 @@ int main(int argc, char *argv[])
);
return 0;
}
if(!strcmp("--ipv6", argv[arg])) {
else if(!strcmp("--pidfile", argv[arg])) {
arg++;
if(argc>arg)
pidname = argv[arg++];
}
else if(!strcmp("--ipv6", argv[arg])) {
#ifdef ENABLE_IPV6
use_ipv6=TRUE;
#endif
arg++;
}
if(argc>arg) {
else if(argc>arg) {
if(atoi(argv[arg]))
port = (unsigned short)atoi(argv[arg++]);
if(argc>arg)
path = argv[arg];
path = argv[arg++];
}
}
@ -820,7 +825,7 @@ int main(int argc, char *argv[])
exit(1);
}
pidfile = fopen(".http.pid", "w");
pidfile = fopen(pidname, "w");
if(pidfile) {
fprintf(pidfile, "%d\n", (int)getpid());
fclose(pidfile);