if (my $ChildPid = fork) {
# Parent - create lock and exit
my $Lock = Childlck->new($ResName);
$Lock->lock_mk($ChildPid);
exit 0;
} else {
# Child - continue as G daemon
exec $CMD, $CMDLineArgs, @ARGV;
}
####
Win32::Process::Create($ChildProc, $CMD, $CMDLine, 0, 0, $CWD) || LOG_MSG("E", "Could not spawn child: $!", 52099);
$ChildPID = $ChildProc->GetProcessID();
LOG_MSG("I", "ChildPID = $ChildPID", 52099, $ChildPID);
my $Lock = Glck->new($ResName);
$Lock->lock_mk($ChildPID);
LOG_MSG("I", "Online.pl is about to exit with 0.", 52099);
exit (0);
####
system($CMDLine);
my $Lock = Glck->new($ResName);
LOG_MSG("I", "Online.pl is about to exit with 0.", 52099);
exit (0);