我尝试通过plink执行bash脚本。脚本如下所示:
echo "@ Starting process..."
./bin/process "process.cfg" &
disown %1
echo "@ Done!"
当我在linux上的终端中执行这个脚本时,一切工作正常。在“完成!”之后行I得到一个命令提示符(不出所料)。
现在,当我通过plink运行这个脚本时,输出在"Done!“之后停止。行,但是plink不会返回到命令提示符,并且在+c之前“挂起”。
脚本被放在一个文件中,并通过-m参数提供给plink
我尝试在脚本末尾添加“注销”、“退出”、“设置-e”,但没有帮助。此外,在plink命令中添加-batch、-T或-N也没有成功。
有什么办法解决这个问题吗?
发布于 2014-02-07 07:25:45
好的,看起来我必须从终端分离stdout/err。在正常的终端中,这当然无关紧要,但由于这个原因,plink仍然处于“忙”状态。
因此,在我的bash脚本(执行该命令)中,我必须更改:
./bin/进程"process.cfg“&
至:
./bin/进程"process.cfg“/dev/空2>&1 &
plink现在可以在bash脚本的末尾返回正确的“完成”状态。
发布于 2014-11-22 02:02:27
plink.exe -P PORT_NUM -v USERNAME@HOST_IP -pw PASSWD "COMMAND >/dev/null &"
&
会将您的进程移到后台> /dev/null
通过将stdout/stderr输出到虚拟的空设备,允许您的命令静默运行
注意: shell命令用“双引号”括起来
发布于 2014-01-30 12:29:49
Plink有一个禁用所有交互式提示的-batch
参数。这可能是您在这里需要避免挂起,直到按下ctrl-C。
https://stackoverflow.com/questions/21456402
复制相似问题