如何强制bdutil命令以root身份运行?

时间:2015-04-24 20:29:37

标签: python google-app-engine google-compute-engine google-hadoop

我正在从App Engine应用程序启动Google Compute Engine VM。 GCE VM的启动脚本运行python脚本,这些脚本反过来使os.system调用bdutil命令,例如

os.system("bdutil --bucket <BUCKET> --num_workers 1 "
          "--env_var_files hadoop2_env.sh --default_fs hdfs "
          "--zone us-central1-b --prefix <NAME> --force deploy")

我发现有必要以root身份运行这些脚本,例如

sudo python script.py

--force deploy命令选项按预期工作,,shell终端显示:

Deploy cluster with following settings?
....
(y/n) y

但是,还包括另一个提示:

Are you sure you want to run the command as root? (y/n)

我发现我需要以root身份执行这些脚本,但我也是远程执行它们,无法响应终端提示。

如何在不响应最终提示的情况下强制执行此bdutil命令?修改bdutil源代码不是一个可行的选择。

1 个答案:

答案 0 :(得分:0)

感谢您的报告,这是 /* If the device has permanent device address, driver should * set dev_addr and also addr_assign_type should be set to * NET_ADDR_PERM (default value). */ if (dev->addr_assign_type == NET_ADDR_PERM) memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len); 中的错误,在正常情况下,我们确实应该将bdutil-f标志应用于所有确认提示,而不仅仅是标准部署/删除提示。我已提交https://github.com/GoogleCloudPlatform/bdutil/issues/31来跟踪此问题。

与此同时,您应该能够使用linux --force命令解决此问题,该命令通常用作ad-hoc yes标志,用于直接不包含此类标志的命令:

--force