我在构建服务器中运行了一个shell脚本,它启动了一个巨大的虚拟机,然后等待端口上的消息:
nc -vv -l -p 9090
庞大的虚拟机运行一个超级复杂的脚本,在完成任务时包含以下简单语句:
echo Completed | nc -vv -w10 $TARGET_IP 9090
其中TARGET_IP是构建服务器的静态配置IP地址。
当我在命令行上启动脚本时,这一切都正常。
但是,当我将同一个脚本合并到Jenkins构建中时,在同一台机器上,巨大虚拟机上脚本中的nc
调用失败了:
/var/lib/cloud/instance/user-data.txt: line 11: echo: write error: Broken pipe
什么可能导致这种奇怪的行为差异?
环境是AWS EC2上的Ubuntu 16.04 LTS。