in reply to Launch process, get PID
If you just want to launch command and not worry about it, just use fork and exec directly:
my $pid = fork(); die "unable to fork: $!" unless defined($pid); if (!$pid) { # child exec('command...'); die "unable to exec: $!"; } # parent continues here, pid of child is in $pid
In the exec, perhaps you'll want to redirect the child's output to either /dev/null or a file.
Another option is to 'daemonize' the child which involves detaching it from the parent's process group. For an example, have a look at http://snippets.dzone.com/posts/show/359, and I'm sure there's code on CPAN to do it, too.
In your original code, I think you were getting broken pipes because you were closing $handle and the child was still writing to its STDOUT.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Launch process, get PID
by rvosa (Curate) on Feb 29, 2008 at 03:04 UTC |