在Perl脚本中执行另一个Perl脚本的方法是什么?

3

我需要关于Perl的帮助,因为我对它还很陌生。我想从我的父Perl脚本中执行一个Perl脚本,并涵盖以下情况:

if (my child script takes more time than my time limit)
{
    I need to kill the child script with a return code 
    logged into my parent script log file
}

if (my child script failed to execute)
{
     I need to write a new RC to my parent script logfile 
     by looking at my child script exit status
} 

请问有没有人能够提供代码,来说明如何使用fork、exec以及进程相关的命令,以获取子进程的进程ID,当父进程脚本被执行时?


只有父进程才能杀死子进程。 :D - arka.b
2个回答

1

阅读perlipc(进程间通信)手册是一个不错的开始。


perlipc 对于初学者来说相当令人望而生畏。不幸的是,我没有其他推荐。 - Zaid
分叉并不是一个适合初学者的话题。但它相当直接,而 perlipc 页面也并不那么糟糕。 - Len Jaffe

0

一般而言:

fork() 返回一个整数,如果失败则返回未定义。

您需要检查整数的值:

  1. 如果它是0,则表示您在子进程中,并且可以运行您的任务。
  2. 如果它不是0,则表示您在父进程中,并且您有子进程的pid,因此您需要等待它或根据需要收割它。

在perlipc文档中有一个很好的这种代码骨架的示例,davorg已经提到了它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接