我正在从父 perl 脚本启动新的独立 Perl 脚本[使用系统(启动命令)]。我正在将子脚本的 PID 写入一个文件,然后在父脚本中读取它,这样每当我想结束子进程时,我都可以简单地使用它的 PID 杀死它。
但是我正在使用子脚本中的子进程 ex system("somebatchfile) 调用另一个批处理文件。这里我的 PID 会改变,我无法关闭它,直到批处理文件完成它的工作。我无法获得 PID批处理文件。我尝试使用 fork 函数,但无论如何调用批处理文件都会创建自己的其他 PID。
我的代码如下。
父脚本:启动一个新脚本并读取 PID 并在需要时终止启动的脚本。
子脚本:
open(PID,">PID_Value.txt");
print PID "\$Process_id=$$"; # write the PID of child script
close(PID);
system("somebatch file name"); # I am using Windows 7