我正在启动ec2机器时运行用户数据脚本,该机器会在检查最后执行的命令的退出状态后关闭机器。我确认最后执行的命令已成功运行,因此我不确定为什么机器没有终止。并非每次都发生这种情况,似乎只有在用户数据脚本快速完成时才会发生。
这是我的bash脚本的结尾(在执行了几个命令之后):
python myscript.py
ret=$?
echo $ret
if [[ $ret -eq 0 ]]; then
shutdown now
fi
这将产生以下输出,但不会终止实例:
0
Cloud-init v. 0.7.9 running 'init-local' at Wed, 28 Nov 2018 20:15:38 +0000. Up 11.12 seconds.
Cloud-init v. 0.7.9 running 'init' at Wed, 28 Nov 2018 20:15:41 +0000. Up 14.67 seconds.
ci-info: ++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++
ci-info: Device Up Address Mask Scope Hw-Address
ci-info: lo: True 127.0.0.1 255.0.0.0 . .
ci-info: lo: True . . d .
ci-info: eth0: True 10.90.1.222 255.255.255.0 . 0e:c9:6e:60:5d:e8
ci-info: eth0: True . . d 0e:c9:6e:60:5d:e8
ci-info: +++++++++++++++++++++++++++Route IPv4 info++++++++++++++++++++++++++++
ci-info: Route Destination Gateway Genmask Interface Flags
ci-info: 0 0.0.0.0 10.90.1.1 0.0.0.0 eth0 UG
ci-info: 1 10.90.1.0 0.0.0.0 255.255.255.0 eth0 U
ci-info: 2 169.254.169.254 0.0.0.0 255.255.255.255 eth0 UH
Cloud-init v. 0.7.9 running 'modules:config' at Wed, 28 Nov 2018 20:15:44 +0000. Up 17.35 seconds.
Cloud-init v. 0.7.9 running 'modules:final' at Wed, 28 Nov 2018 20:15:45 +0000. Up 18.45 seconds.
Connection to 10.90.1.222 closed by remote host. 20:15:46 +0000. Datasource DataSourceEc2. Up 19.56 seconds
我正在尝试确定Cloud-init是否以某种方式阻止实例终止。是因为脚本在其他后台进程仍在初始化时完成了吗?