ssh& perl&在后台运行

时间:2013-12-18 17:24:59

标签: linux perl ssh aix

两个主机都是* nix

在主机2上有两个perl脚本nfs1nfs2

脚本nfs1在后​​台多次运行脚本nfs2

system("/usr/local/scripts/nfs2 -m $mountpt &");

在本地运行时,它可以正常工作。

通过ssh在其他主机上运行时

ssh testhost /usr/local/bin/nfs1

ssh将等到脚本nfs2完成

为了测试,我加入了nfs2 10秒的睡眠时间。

运行nfs1需要'零'时间,你可以通过ps nfs2看到,然后在10秒后结束。

当我ssh /usr/local/scripts/nfs1需要10.8秒时,将睡眠时间改为5,让我获得5.8秒。我稍后会弄清楚.8。

想法?

-pete

1 个答案:

答案 0 :(得分:2)

脚本nfs2很可能在ssh链接上打开了文件描述符。关闭它们。重写nfs2以使其正确守护自身并关闭其所有文件描述符,或者修改nfs1以在关闭或重定向描述符的情况下调用它。那就是:

system("/usr/local/scripts/nfs2 -m $mountpt < /dev/null > /dev/null 2>&1 &");