2017-08-07 53 views
0

我在Google雲計算(GCE)上有一個標準的Debian 8.9實例,我的啓動腳本被忽略。谷歌雲計算啓動腳本忽略不記錄

在自定義元數據字段,用於啓動腳本,我試圖運行RSCRIPT(其被用於R上的文件的批處理執行),隨後是系統關機,具有下列:

​​

啓動實例後立即關閉,並忽略Rscript。刪除最後一行關閉會導致GCE實例啓動,但Rscript將被忽略。從終端運行「sudo/usr/bin/Rscript /home/myuser/launch_script.R」會導致腳本運行。它有一個755的chmod,所以我不認爲這是一個權限問題。

除了這個問題之外,我已經在其他地方看到日誌記錄應該發生在/ var/log /中,但是那裏沒有任何東西。相反,我有一堆的日誌文件(僅包含了啓動腳本,並沒有別的)在我的實例的根:

Screenshot of filesystem root

回答

0

我在與谷歌雲支持取得了聯繫,是誰給了以下回應:$ sudo的google_metadata_script_runner --script型:

  • 腳本定義下/var/run/google.startup.script
  • 保持如果腳本最初不運行,你可以手動強制在Debian上啓動#,或在U上運行#sudo/usr/share/google/run-startup-scripts# buntu和舊圖像

我在這裏發佈此信息,因爲它不在其文檔中(截至2017年8月)。我不確定它有多大的幫助,因爲google.startup.script在我的情況下不存在(使用GCE上的最新Debian鏡像),但我確實運行了其他命令。

不過,我想我的主要問題是:

  1. 我用autossh連接到遠程數據庫。啓動腳本在autossh之前運行。在腳本中建立40秒的延遲並以用戶身份運行腳本(不是sudo-type root)似乎現在已經解決了這個問題。 Autossh正在作爲主要用戶運行,我認爲在用戶定義的較低權限的腳本被加載之前會加載該用戶。

  2. 我在用戶帳戶中使用了一些gcloud命令,它有自己的驗證問題。以用戶身份運行gcloud auth login並確保我的私鑰的正確權限解決了此問題。

請務必檢查/ var/log中的消息和系統日誌文件以進行故障排除。這讓我看到了系統啓動時加載的東西的順序。