Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2022年7月27日
 
 

ctrun(1)

名前

ctrun - プロセス契約のコマンドの実行

形式

/usr/bin/ctrun [options] command [ argument]...

説明

ctrun ユーティリティーは新しく作成されたプロセス契約のコマンドを開始します。ctrun は契約を保持し、契約内で発生したイベントを出力したり、応答したりするように指示できます。

プロセス契約の詳細は、contract(5) および process(5) を参照してください。

オプション

サポートしているオプションは、次のとおりです。

–A aux

プロセス契約作成者の補助フィールドを設定します。

–i event,[event ...]
–f event,[event ...]

情報イベントおよび致命的なイベントをそれぞれ設定します。

次に、有効な event を示します。

core

メンバープロセスがコアをダンプしました。

デフォルトでは、core イベントは情報です。

empty

プロセス契約の最後のメンバーが終了しました。

exit

メンバープロセスが終了しました。

fork

プロセスがプロセス契約に追加されました。

hwerr

メンバープロセスでハードウェアのエラーが発生しました。

デフォルトでは、hwerr イベントは致命的です。

signal

メンバープロセスが別のプロセス契約のプロセスから致命的なシグナルを受け取りました。

致命的にできるのは、corehwerr、および signal イベントのみです。

ctrun が独自の目的のためにイベントを必要とする場合は、要求されるよりも多くのイベントを提供できます。たとえば、contract の有効期間が指定された場合は、empty メッセージが常に要求されます。–l の解説を参照してください。

–F fmri

プロセス契約サービスの FMRI フィールドを設定します。このフィールドを設定するには、呼び出し元の実効セットに {PRIV_CONTRACT_IDENTITY} がある必要があります。

–l lifetime

次の有効な lifetime の値がサポートされています。

child

契約が空であるかどうかに関係なく、コマンドが終了すると ctrun が終了します。

contract

契約が終了した場合にのみ ctrun が終了します。これはデフォルトです。

none

ctrun がすぐに終了し、契約が孤立します。

–o option,[option ...]

次の option がサポートされています。

noorphan

ホルダー (ctrun) が終了すると、契約のすべてのプロセスが強制終了されます。

有効期間に none が指定されている場合、このオプションは無効です。

pgrponly

致命的なエラーが発生した場合、エラーのあるプロセスがメンバーであるプロセスグループが強制終了されることがあります。

regent

メンバープロセスによって破棄された場合、契約は継承可能な契約を継承します。

–r count

このオプションを指定すると、契約で障害が発生した場合に、コマンドを count 回再起動することが試みられます。count0 場合は、再起動が無限に試みられます。デフォルトでは、ctrun はコマンドの再起動を試みません。

contract ではない有効期間が指定されている場合、または pgrponly オプションが使用されている場合、このオプションは無効です。

–t

ctrun によって作成された契約がメンバープロセスからサブ契約を継承した場合、再起動時にそれらを新しい契約に転送しようとします。

–r も指定されている場合を除き、このオプションは無効です。

–v

契約イベントおよび ctrun のアクションを発生時に表示します。

–V

ctwatch–v オプションの表示と同様に詳細な契約イベントを表示します。–v が暗黙的に指定されます。

オペランド

次のオペランドがサポートされています。

argument

command への引数として扱われる文字列の 1 つ。

command

execvp(2) に渡されるコマンド。exec(2) を参照してください。

使用例 1 新しいプロセス契約でのシェルの実行

次の例では、新しいプロセス契約でシェルを実行しています。


example% ctrun -l child -o pgrponly ksh

ctrun がシェルのすべての子が終了するまで待たないように、–l child オプション引数が指定されています。–o pgrponly が指定されているのは、対話型の ksh では各ジョブが新しいプロセスグループに配置され、1 つのジョブのエラーがほかのジョブに影響しないと考えられるためです。

使用例 2 単純なサーバーの実行

次の例では、単純なサーバーを実行しています。

example% ctrun -r 0 -t -f hwerr,core,signal server

–r 0 および –t オプションが指定されているのは、サーバーで致命的なエラーが発生した場合に ctrun が再起動を試みることを示すためです。–f オプションによって、「hwerr」、「core」、および「signal」が致命的なイベントになっています。

終了ステータス

command が指定されて正常に呼び出された (exec(2) を参照) 場合、ctrun の終了ステータスは command の終了ステータスとなります。それ以外の場合、ctrun は次の値のいずれかで終了します。

123

子プロセスが異常終了しました。

124

ctrun で内部エラーが発生しました。

125

無効な引数が ctrun に指定されました。

126

command で示すコマンドユーティリティーは見つかったが呼び出すことができなかった。

127

コマンドが見つからなかった。

ファイル

/system/contract/process/*

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
下記を参照。

人間が読める形式の出力は「不確実」です。呼び出しは「確実」です。

関連項目

ctstat(1)ctwatch(1)exec(2)contract(5)process(5)attributes(7)