【发布时间】:2016-07-29 07:06:17
【问题描述】:
这是我从机器 1 启动到机器 2(远程)的脚本代码
#!/bin/bash
nohup perl server.pl &
echo "script ends"
exit
文件 server.pl 在 while(1) 循环中运行,永远监听套接字。
我现在面临的问题是:当我在调用此脚本后远程启动此 shell 脚本时,我在启动此 shell 脚本的文件中还有其他工作要做。 例如:
#this script launches the shell script
$cmd = "sabkuch.sh";
$ssh->system($cmd);#using Openssh perl package to remotely run commands
#do some other processing
print "Welcome to USA\n";
运行上述代码时,我无法打印语句,直到我给出 Ctrl-C。
如果我在机器 2 本身上启动这个 shell 脚本(没有从机器 1 远程启动它)我得到了想要的结果,我不知道我哪里出错了,可能是什么问题?
PS:我已经在 shell 脚本中注释了所有打印语句(以避免一些标准输出问题,尽管 & 再次将进程带到 fg)
【问题讨论】:
-
很难听懂你的解释。请尝试更准确或包含更多详细信息。另见How to create a Minimal, Complete, and Verifiable example
标签: linux bash perl shell background-process