Мне сложно понять среду оболочки, которая используется для запуска сценариев запуска. Какая разница с сеансом входа в систему?
Если я установлю простой скрипт запуска для печати переменных env:
metadata
items:
- key: startup-script
value: ' printenv;'
У меня будет что-то вроде этого: Feb 20 15:16:19 xxxx startup-script[1112]: INFO startup-script: OLDPWD=/
Feb 20 15:16:19 xxxx startup-script[1112]: INFO startup-script: PATH=/usr/local/sbin:/usr/local/bin:/usr/
Feb 20 15:16:19 xxxx startup-script[1112]: INFO startup-script: PWD=/opt
Feb 20 15:16:19 xxxx startup-script[1112]: INFO startup-script: LANG=en_US.UTF-8
Feb 20 15:16:19 xxxx startup-script[1112]: INFO startup-script: SHLVL=2
Feb 20 15:16:19 gceeuw1lin0003 startup-script[1112]: INFO startup-script: _=/usr/bin/printenv
И если я выполню команду printenv в сеансе ssh, я смогу увидеть намного больше переменных, таких как HOSTNAME, HOME, SHELL ... и т. Д.
Я пытаюсь установить программное обеспечение при запуске (проприетарное программное обеспечение), но это не удается из-за переменной $ HOME.
Could not expand the path using $HOME
Я попытался настроить HOME varibale в сценарии запуска непосредственно перед установкой программного обеспечения, но он не говорит:
invalid command name "wm"
Когда я пробую ту же установку с использованием интерактивной оболочки, все работает нормально! Более того, он работает, даже если я принудительно перезапускаю сценарий запуска из моего интерактивного сеанса, используя эту команду:
sudo google_metadata_script_runner --script-type startup --debug
Ищу логическое объяснение происходящему? почему он работает из интерактивной оболочки, а не из сценария запуска?
Есть идеи, как это исправить?
Заранее спасибо!
Вы пробовали запустить сценарий запуска на вкладке автоматизации? я вижу, что обычно не используются для этого, пожалуйста, проверьте сценарий запуска GCE документацию, чтобы убедиться, что вы используете правильный сценарий, например:
#! /bin/bash
printenv