Thank You @betterworld
for the line:
system("sleep 10 3>$tmpnam");
what does 3>$tmpnam do?
If I need to replace the sleep 10 with a call to script that needs arguments, how would I do that?
system("/opt/bea/domains/fsa/scripts/start.sh fsaAs02 -q 3>$tmpnam");
"command > file" redirects standard output into a file. Standard output is file descriptor 1.
"command < file" redirects standard input from a file. Standard input is file descriptor 0.
Standard error is file descriptor 2, and the first free descriptor is usually 3. Therefore I used "command 3> file" so that the (dummy) file descriptor 3 is connected to a temporary file, which was created using File::Temp.
In my experience, open files are a very nice means to keep track of a running process. The command "fuser" can be used to find the processes that are connected to a file. "fuser" will kill these processes when "-k" is specified.