内容

概要

背景説明

IOXアプリケーションの終了に関する基本情報

アプリケーション/ターゲットの終了時にIOXコンテナが停止するのを防止する

概要

このドキュメントでは、起動時に問題が発生したり、予期せず停止したりするIOXアプリケーションをトラブルシューティングまたはデバッグする方法について説明します。

背景説明

IOXアプリケーションを開発する際の最善のアプローチは、別のプラットフォームやサンドボックスで開発することです。目的のIOXアプリケーションがテストされ、準備ができたら、IOX対応デバイスにパッケージ化して導入できます。場合によっては、展開が期待どおりに動作せず、アプリケーションが予期せず停止したり、起動しないこともあります。

およびIOX VM/コンテナ/アプリケーションのデフォルトの動作は、targetコマンドが終了するとすぐに停止することです。これにより、すべての非永続的情報が消失するため、予期しない問題が発生した場合のトラブルシューティングが困難になります。もう1つの結果として、IOXアプリケーションの機能を再生/実験するには非常に時間がかかります。別のapp/target/command/scriptを起動するには、少なくともpackage.yamlを変更し、新しいパッケージを構築し、現在のアプリケーションを非アクティブ化し、新しいパッケージでアップグレードし、アプリケーションを再アクティブ化して起動する必要があります。

IOXアプリケーションの終了に関する基本情報

Local ManagerおよびIOXクライアントは、アプリケーション/コンテナ/VMが停止した理由に関する情報を多く提供しません。幸い、watchDog.logは、この点を追跡し、アプリケーションの最後の終了/戻りコードも提供します。これは常に役に立つとは限りませんが、多くの場合、あなたが探している理由に導きます。

IOXクライアントでwatchDog.logをフェッチするには：

[jedepuyd@db ~]$ ioxclient app logs tail iox_docker_test watchDog.log 10

Currently active profile :  default

Command Name: application-logs-tail

App/Service : iox_docker_test, Logfile : watchDog.log, viewing last 10 lines

APP END TIME:1498207460

Time taken by App : 0 minutes and 0 seconds.

Got the ip address - 10.197.215.227 for interface eth0

All interfaces got the ips

APP START TIME:1498207536

App iox_docker_test started with PID : 11

Monitoring this process now

App iox_docker_test completed with exit code: 127

APP END TIME:1498207536

Time taken by App : 0 minutes and 0 seconds.

ローカルマネージャを使用してログを取得するには、次の手順に従います。

1. Local Managerにログインします。

2. 図に示すように、関連するアプリケーションのstart deactivate manageをクリックします

3. 図に示すように[Logs]タブを選択します。

4. watchDog.logをダウンロードします。

たとえば、このアプリケーションは予期せず終了し、watchDog.logに表示されます

APP START TIME:1498207536

App iox_docker_test started with PID : 11

Monitoring this process now

App iox_docker_test completed with exit code: 127

APP END TIME:1498207536

上記のログのスニペットからわかるように、終了コードは127でした。これは予約済みのリターンコードであり、次の意味です。command not found:faultyコマンドがターゲットとして指定されているか、開始されたスクリプトがfaultyコマンドを呼び出そうとしていることを示します。

最も一般的な予約済み終了コード：

RC

意味

コメント

1

一般的なエラーのキャッチオール

その他のエラー（「ゼロ除算」など）や許容できない操作など)

0

シェル構築物の誤用

キーワードまたはコマンドが見つからないか、アクセス許可の問題（およびバイナリファイルの比較に失敗した場合のdiffリターンコード）。

126

コマンドを実行できませんでした

アクセス許可の問題またはコマンドは実行可能ファイルではありません

127

コマンドが見つかりません

$PATHまたはtypoに関する問題

128

終了する引数が無効です(RC>255)

exitは0 ～ 255の範囲の整数の引数のみを取ります

128+n

致命的なエラー信号「n」

終了コードは137 (128 + 9) ->アプリケーションエラー信号が9を返します

130

Ctrl+Cで終了

Control-Cは致命的なエラー信号2、（130 = 128 + 2、上記を参照）

255

終了状態が範囲外(RC>255)

exitは0 ～ 255の範囲の整数の引数のみを取ります

詳細については、http://tldp.org/LDP/abs/html/exitcodes.htmlを参照してください。

アプリケーション/ターゲットの終了時にIOXコンテナが停止するのを防止する

上記の項では、障害が発生しているアプリケーションのトラブルシューティング方法に関する情報を提供しますが、IOXアプリケーションの停止を防止することはできません。これは、すべての非永続的データが存在しなくなったため、トラブルシューティングに関連する最も有益な情報が消失したことを意味します。

前述したように、もう1つの使用例は、起動されたIOXアプリケーションの機能を使用して再生するか、コマンドや引数を使用して柔軟性を持たせることです。

IOXアプリケーションがアプリケーション側で終了しないようにするには、activateコマンドに-debug onを渡します。

[jedepuyd@db ~]$ ioxclient app activate -debug on testdebug

Currently active profile :  default

Command Name: application-activate

App testdebug is Activated

[jedepuyd@db ~]$ ioxclient app start testdebug

Currently active profile :  default

Command Name: application-start

App testdebug is Started

[jedepuyd@db ~]$ ioxclient app console testdebug

Currently active profile :  default

Command Name: application-console

Console setup is complete..

Running command : [ssh -p 2222 -i testdebug.pem appconsole@10.48.43.197]

/ #

上記の例では、-debug onフラグをアクティブにして開始した後、アプリケーションが終了してもコンテナにアクセスできます。ここで他のコマンドを起動し、アプリケーションが稼働する環境で自由にアプリケーションを試すことができます。これにより、アプリケーションの問題を解決したり、正しいターゲットと引数を設定したりするのに多くの時間を節約できます。