2016-09-19 85 views
1

我去年,我发现所有相关的日志文件的位置,并命令我在这里的问题中提到:https://cloud.google.com/compute/docs/startupscript#rerunthescript我在哪里可以找到GCE启动脚本的退出代码?

我的情况:

启动脚本字面上“出口69”用于测试目的开始。

命令我运行:

sudo google_metadata_script_runner --script-type startup 
echo $? 

输出:

/var/log/daemon.log相关内容(重复):

09月19日15:15: 32 api-0 startup-脚本:信息启动启动脚本。
Sep 19 15:15:32 api-0 startup-script:INFO在元数据中找到启动脚本。
Sep 19 15:15:32 api-0启动脚本:INFO启动脚本:返回码69.
Sep 19 15:15:32 api-0启动脚本:信息已完成运行启动脚本。

有没有好的办法让我的脚本返回代码不解析/var/log/daemon.log和希望,它实际上结束了那里,我不会抢错了?

回答

1

嗯,我没有经验script_runner的事情,但我有点为你解决。

实现脚本的exit()函数具有以下内容:

function Exit(code) { 
    echo $code > /tmp/runner_code 
    exit $code  
} 

UND只是cat /tmp/runner_code执行脚本之后。 这能解决你的问题吗?

+0

我想要覆盖所有脚本中的某些内容在我的“退出”语句之外失败的情况,我不期望它。定义一个新的Exit函数是否会覆盖默认的退出功能?因此,例如,如果启动脚本中间的随机意外命令与退出代码5崩溃,该功能是否会自动进入并执行自身并向文件写入5? – snetch

+0

你可以使用'别名'来覆盖退出函数,但只能在你的脚本中。像'别名退出=''退出'。但是无论如何,除非你在开头指定'set -e',否则脚本不会自行退出。如果你有它,那么只需将其删除,程序将只在你想要的时候退出 –

+0

嗯,重点是,我的脚本中没有任何退出语句。即使我这样做了,我也想涵盖在退出语句之外发生的崩溃。我也要添加“set -e”脚本。所以我认为一个别名对我来说是无用的。 – snetch

相关问题