【问题标题】:Want to execute a perl script within a perl script想要在 perl 脚本中执行 perl 脚本
【发布时间】:2011-08-01 15:35:34
【问题描述】:

我需要关于 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

标签: perl process exec fork


【解决方案1】:

perlipc(进程间通信)手册页是一个不错的起点。

【讨论】:

  • perlipc 对于初学者来说是相当令人生畏的。不幸的是,我没有其他可推荐的。
  • 分叉并不是一个真正的初学者话题。但这很简单,而且 perlipc 页面并不是那么糟糕。
【解决方案2】:

一般:

fork() 返回一个 in 整数,如果失败则返回 undef。

你检查整数的值

  1. 如果它是 0,那么你在孩子中,并且你运行你的幼稚任务。
  2. 如果它不是 0,那么你在父母中,并且你有孩子的 pid,所以你等待它,或者根据需要获取它。

在 davorg 已经提到的 perlipc 文档中有一个很好的这种代码框架的例子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-13
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多