execute process in Perl with options for stopping,resuming,killing using IPC

Viewed 345

I almost have no idea of forking. I tried to research, but I couldn't find a simple example of how to do these things. For windows I found a good module and wrote this piece of code, which is doing what I want.

   Win32::Process::Create( my $ProcessObj,
    "$jobs{$id}->{path}", "execute job", 0, NORMAL_PRIORITY_CLASS, "." )
  || die ErrorReport();
print "Available commands:\n1.Suspend\n2.Resume\n3.Kill\n";
while (1) {
    chomp( my $input = <STDIN> );
    if ( $input eq "1" ) {
        $ProcessObj->Suspend();
    }
    if ( $input eq "2" ) {
        $ProcessObj->Resume();
    }
    if ( $input eq "3" ) {
        print "Returned to main menu.\n";
        $ProcessObj->Kill(0);
        return;
    }
}

So my question is if there is a way to do this with forking? And here is my try for forking:

unless ( $pid = fork) {
        unless (fork) {
            exec "$jobs{$id}->{path}";
            die "exec failed!";
        }
        exit 0;
    }
    waitpid($pid, 0);

I have a program which is printing Hello world every 3 seconds and I want to pause it, resume it and kill it, if this example will help.

2 Answers
Related