Jan 27, 2009, 11:56 PM
Post #1 of 4
Background child with pid on windows
I'm converting an existing Perl script from UNIX to Windows XP.
This script calls another Perl script in the background using backticks and ampersand (`x_child.pl ... &`).
The child script acts as a timeout check for the parent and will kill it if it's stuck for too long.
Eventually, the parent will also kill the child script - using the shell's `ps -ef | grep x_child.pl ...` to locate the child's PID.
I need to replicate this behaviour under windows but wasn't able to find the tools:
1. using 'system(1, "perl x_child.pl...")' the script runs in the background, but I can't get it's PID.
2. using 'tasklist' doesn't seem to get the program's arguments to enable identifying a specific instance, or even the script's name (only 'perl.exe').
3. using 'open(GET_PID, "perl x_child.pl ...|")' I can communicate with the process and have it send back it's PID, but I can't have it run in the background.
('...' meaning script arguments)
Any ideas ?