plink不会返回命令提示符

use*_*141 8 bash plink

我尝试通过plink执行bash脚本.脚本看起来像这样:

echo "@ Starting process..."
./bin/process "process.cfg" &
disown %1
echo "@ Done!"
Run Code Online (Sandbox Code Playgroud)

当我在linux上的终端上执行这个脚本时,一切正常.在"完成!"之后 我得到一个命令提示符(如预期的那样).

现在,当我通过plink运行此脚本时,输出将停止"完成!" 但是plink不会返回命令提示符并"挂起"直到+ c.

该脚本放在一个文件中,并使用-m参数提供给plink

我在脚本的末尾尝试了addind'logout','exit','set -e',但它没有帮助.另外在plink命令中添加-batch,-T或-N也没有成功.

有想法该怎么解决这个吗?

use*_*141 6

好吧,似乎我不得不从终端分离stdout/err.在正常的终端,这无关紧要,但plink因此而处于"忙碌"状态.

所以,在我的bash脚本(执行命令)中,我不得不改变:

./bin/process"process.cfg"&

至:

./bin/process"process.cfg"/ dev/null 2>&1&

plink现在在bash脚本的末尾返回正确的"已完成"状态.

  • 这是否在 /dev/null 之前缺少“>”? (2认同)

Zah*_*hra 5

plink.exe -P PORT_NUM -v USERNAME@HOST_IP -pw PASSWD "COMMAND >/dev/null &"

  • & 会将您的流程移至后台
  • > /dev/null 通过让 stdout/stderr 输出到虚拟空设备,允许您的命令静默运行

注意:shell 命令用“双引号”括起来


Cyr*_*lle 0

Plink 有一个-batch参数可以禁用所有交互式提示。您可能需要这样做以避免挂起直到 ctrl-C。