Сервер запуска узла Compute Engine при запуске экземпляра - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь запустить бот-диск в приложении узла в бесплатном экземпляре Compute Engine. Я изо всех сил пытаюсь сделать скрипт, который на самом деле запускает приложение узла. Я создал этот скрипт и добавил его как startup-script метаданные из файла: cd code/movo-tron-2000 && npm start &

. Я проверил, что скрипт работает с sudo google_metadata_script_runner --script-type startup --debug, но когда я перезапускаю экземпляр, приложение не запускается. При запуске sudo journalctl -u google-startup-scripts.service печатаются следующие журналы:

Apr 20 12:19:08 bot-vm systemd[1]: Starting Google Compute Engine Startup Scripts...
Apr 20 12:19:09 bot-vm startup-script[691]: INFO Starting startup scripts.
Apr 20 12:19:09 bot-vm startup-script[691]: INFO Found startup-script in metadata.
Apr 20 12:19:09 bot-vm startup-script[691]: INFO startup-script: /startup-od52epug/tmpjy_z4vue: line 1: cd: code/mo
Apr 20 12:19:09 bot-vm startup-script[691]: INFO startup-script: Return code 0.
Apr 20 12:19:09 bot-vm startup-script[691]: INFO Finished running startup scripts.
Apr 20 12:19:09 bot-vm systemd[1]: Started Google Compute Engine Startup Scripts.

Я вижу, что сценарий выполняется, но также завершается. Приложение прослушивало запросы, поэтому оно не должно завершаться для запуска. Я предполагаю, что сценарий запуска запускается в том же потоке, что и сценарий запуска Google Compute Engine, поэтому он завершается, чтобы продолжить загрузку vm. Что я должен изменить в своем сценарии запуска, чтобы правильно запустить мое приложение и не завершить его экземпляром?

Редактировать: я установил следующий системный сервис и скрипт в соответствующих местах

Сервис:

[Unit]
Description=Start bot

[Service]
ExecStart=/home/me_adi_hf/code/movo-tron-2000/start.sh

[Install]
WantedBy=default.target

Скрипт:

#!/bin/sh

date > /root/bot_report.txt
du -sh /home/ >> /root/bot_report.txt

Но при запуске sudo systemd start bot.service и затем проверяя его состояние с помощью sudo systemd status bot.service, я получаю этот вывод, показывая Exec format error:

bot-start.service - Start bot
   Loaded: loaded (/etc/systemd/system/bot-start.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2020-04-21 09:43:01 UTC; 9s ago
  Process: 19303 ExecStart=/home/me_adi_hf/code/movo-tron-2000/start.sh (code=exited, status=203/EXEC)
 Main PID: 19303 (code=exited, status=203/EXEC)

Apr 21 09:43:01 bot-vm systemd[1]: Started Start bot.
Apr 21 09:43:01 bot-vm systemd[19303]: bot-start.service: Failed at step EXEC spawning /home/me_adi_hf/code/movo-tron-2000/start.sh: Exec format error
Apr 21 09:43:01 bot-vm systemd[1]: bot-start.service: Main process exited, code=exited, status=203/EXEC
Apr 21 09:43:01 bot-vm systemd[1]: bot-start.service: Unit entered failed state.
Apr 21 09:43:01 bot-vm systemd[1]: bot-start.service: Failed with result 'exit-code'.

Я не уверен, что вызывает ошибку, так как синтаксис файла службы выглядит правильно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...