私は、関連するすべてのログファイルの場所を発見し、ここにコマンドを私の最後の質問で述べた:https://cloud.google.com/compute/docs/startupscript#rerunthescriptGCEスタートアップスクリプトの終了コードはどこにありますか?
マイ状況:
スタートアップスクリプトは文字通りテスト目的のための「出口69」で始まります。
コマンドは、私が実行します。
sudo google_metadata_script_runner --script-type startup
echo $?
出力:/var/log/daemon.log
の
関連する内容は(繰り返し):
9月19日午後03時15分: 32 api-0 startup- script:INFスタートアップスクリプトの起動。
9月19日15:15:32 api-0 startup-script:INFOメタデータのスタートアップスクリプトが見つかりました。
9月19日15:15:32 api-0 startup-script:INFO startup-script:リターンコード69
9月19日15:15:32 api-0 startup-script:INFO実行中の起動スクリプトを終了しました。
/var/log/daemon.log
を解析し、それが実際にあってしまったと私は間違ったものをつかむしないということを期待せずに私のスクリプトでリターンコードを得るための良い方法はありますか?
スクリプト内の何かが、私が "exit"ステートメントの外でそれを期待しないところで失敗するすべてのケースをカバーしようとしています。新しいExit関数を定義すると、デフォルトのexit機能が上書きされますか?たとえば、スタートアップスクリプトの途中で予期しないランダムなコマンドが終了コード5でクラッシュした場合、この関数は自動的にステップインして実行し、ファイルに5を書き込みますか? – snetch
'alias'を使用してexit関数をオーバーライドすることはできますが、スクリプト内でのみ行うことができます。 'alias exit =' 'Exit'のようなものです。しかし、いずれにしても、最初に 'set -e'を指定しない限り、スクリプトは単独で終了しません。もしあなたがそれを持っていれば、それを取り除くだけでプログラムは終了するでしょう。 –
まあ、ポイントは、私はスクリプトにexitステートメントを持っていません。そして私がしても、私は出口のステートメントの外で発生するクラッシュをカバーしたいと思います。私はスクリプトに "set -e"を追加するつもりです。だからエイリアスは私の場合は役に立たないと思う。 – snetch