Google Compute Engine启动脚本无法执行

时间:2014-02-03 09:35:17

标签: google-compute-engine

启动计算引擎实例(GCE)时,我无法正常执行以下启动脚本。

#! /bin/bash
setup vncserver
vnc4server -geometry 1440x900 :1
export DISPLAY=:1
echo "completed"

该脚本由GCE读取,但不执行命令,日志显示空行,中间有消息,这是问题的关键,但我似乎无法解决。

日志显示以下内容:

Feb  3 09:15:33 simpleapache3 startupscript: Running startup script /var/run/google.startup.script
Feb  3 09:15:34 simpleapache3 startupscript:
Feb  3 09:15:34 simpleapache3 startupscript: You will require a password to access your desktops.
Feb  3 09:15:34 simpleapache3 startupscript:

如何解决“你需要密码......”部分?

尝试:

我尝试在脚本中添加密码,但没有运气......

#! /bin/bash
#setup vncserver
vnc4server -geometry 1440x900 :1
myPassword123
export DISPLAY=:1
echo "completed"

注意:

我已经在我添加的永久磁盘上安装了VNC4SERVER。 如果我ssh到实例并手动运行命令,它们工作正常,我不会被要求输入密码。

非常感谢任何帮助......

1 个答案:

答案 0 :(得分:1)

我怀疑这是因为启动脚本以root而不是您的用户身份运行。

这个脚本适合我:

#! /bin/bash
echo "I am: " `whoami`
sudo -u briandorsey DISPLAY=:1 vnc4server -geometry 1440x900 :1
echo "completed"

briandorsey替换为您的用户名。

另外,不要忘记创建防火墙规则以允许vnc流量。这可以通过Consolegcutil

来完成
gcutil addfirewall vnc2 --allowed=tcp:5901

这将允许端口5901上的流量到项目中的所有虚拟机。有关如何进一步限制访问的信息,请参阅firewall docs