执行外部脚本时暂停perl脚本中的执行

时间:2014-03-11 20:16:56

标签: perl

我正在尝试运行一个perl脚本,我称之为第三方脚本。我想暂停执行,直到第三方脚本完成,然后继续执行。

我一直在使用带有睡眠的系统命令,但它的笨重和脚本执行的持续时间可以改变。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

system()调用执行fork和exec,这意味着它创建一个新的子进程,在该子进程中运行命令,并等待该子进程完成。因此,在典型情况下,system()应该等待system()执行的任何操作完成。

问题可能是第三方脚本执行此操作,在这种情况下,您可能会看到您正在描述的行为。

没有更多细节,很难说。你的第三方脚本"完成"手动执行后,将shell提示符返回给您,还是仍在运行?

答案 1 :(得分:1)

使用外部进程打开一个双向管道,允许它在完成后告诉Perl脚本。

perldoc perlipc中详细介绍了这一点。