Почему мой экземпляр ec2 иногда не завершается Когда я использую «выключить сейчас»?

Я запускаю сценарий пользовательских данных при запуске компьютера 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 каким-либо образом экземпляр от завершения. Это потому, что скрипт завершился, пока другие фоновые процессы все еще инициализировались?

2
задан 3 December 2018 в 15:05
1 ответ

Недавно у меня возникла эта проблема, и решением, которое мне помогло, было изменение команды выключения на явный запрос выключения вместо остановки:

shutdown -P now

Документы AWS по адресу https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances. html say:

По умолчанию, когда вы инициируете выключение из экземпляра, поддерживаемого Amazon EBS (используя такие команды, как выключение или выключение питания), экземпляр останавливается (обратите внимание, что stop не выдает команду выключения питания и, если она используется, экземпляр не завершается; вместо этого он помещает процессор в HLT, а экземпляр остается запущенным).

2
ответ дан 3 December 2019 в 11:24

Теги

Похожие вопросы