我尝试通过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也没有成功.
有想法该怎么解决这个吗?
好吧,似乎我不得不从终端分离stdout/err.在正常的终端,这无关紧要,但plink因此而处于"忙碌"状态.
所以,在我的bash脚本(执行命令)中,我不得不改变:
./bin/process"process.cfg"&
至:
./bin/process"process.cfg"/ dev/null 2>&1&
plink现在在bash脚本的末尾返回正确的"已完成"状态.
plink.exe -P PORT_NUM -v USERNAME@HOST_IP -pw PASSWD "COMMAND >/dev/null &"
& 会将您的流程移至后台 > /dev/null 通过让 stdout/stderr 输出到虚拟空设备,允许您的命令静默运行 注意:shell 命令用“双引号”括起来
| 归档时间: |
|
| 查看次数: |
7391 次 |
| 最近记录: |