Google cloud platform 如何在Google计算引擎中设置$HOME启动前脚本
在我的用例中,我尝试使用$HOME变量在实例启动中标识我的应用程序服务器路径 我正在使用GoogleComputeEngine和一个使用$HOME变量的启动脚本。但在谷歌云中执行启动脚本时,似乎未设置$HOME或未创建用户 它抛出Google cloud platform 如何在Google计算引擎中设置$HOME启动前脚本,google-cloud-platform,google-compute-engine,google-cloud-endpoints,startup,Google Cloud Platform,Google Compute Engine,Google Cloud Endpoints,Startup,在我的用例中,我尝试使用$HOME变量在实例启动中标识我的应用程序服务器路径 我正在使用GoogleComputeEngine和一个使用$HOME变量的启动脚本。但在谷歌云中执行启动脚本时,似乎未设置$HOME或未创建用户 它抛出$HOME not set错误。有什么解决办法吗?现在我必须在第一次创建实例后重新启动该实例。以便在我重新启动时设置$HOME变量。但这是一个丑陋的生产黑客 有人能帮我吗?当用户尚未创建且没有登录用户时,启动脚本将作为根执行(您可以在启动时检查它运行$users并比较重
$HOME not set
错误。有什么解决办法吗?现在我必须在第一次创建实例后重新启动该实例。以便在我重新启动时设置$HOME变量。但这是一个丑陋的生产黑客
有人能帮我吗?当用户尚未创建且没有登录用户时,启动脚本将作为根执行(您可以在启动时检查它运行
$users
并比较重新启动后$cat/etc/shadow
的输出)
老实说,我不明白为什么仅仅重启一次就可以在启动时填充您的$HOME
,因为在Linux上,HOME环境变量是由登录程序设置的:
- 通过登录控制台、telnet和rlogin会话
- 由sshd为SSH
- 图形会话的gdm、kdm或xdm连接
if [ -f flagreboot ]; then
...
your script
...
else
touch flagreboot
reboot
fi
另一方面,如果您知道哪个将成为应用程序的$HOME
路径,您可以考虑在启动时简单地导出此变量以手动填充它
$ export HOME=/home/username
你有机会测试我的答案吗?成功了吗?