srcstop サブルーチン
目的
システム・リソース・コントローラー (SRC) サブシステムを停止します。
ライブラリー
システム・リソース・コントローラー・ライブラリー (libsrc.a)
構文
#include <spc.h>
srcstop(Host, SubsystemName, SubsystemPID, StopType)
srcstop(ReplyLength, ServerReply, StopFrom)
char * Host, * SubsystemName;
int SubsystemPID, StopFrom;
short StopType, * ReplyLength;
struct srcrep * ServerReply;
srcstop(ReplyLength, ServerReply, StopFrom)
char * Host, * SubsystemName;
int SubsystemPID, StopFrom;
short StopType, * ReplyLength;
struct srcrep * ServerReply;
説明
srcstop サブルーチンは、サブシステム停止要求をサブシステムに送信し、システム・リソース・コントローラー (SRC) またはサブシステムからの停止応答を待ちます。 srcstop サブルーチンは、SRC によって開始されたサブシステムのみを停止できます。
パラメーター
| 項目 | 説明 |
|---|---|
| Host | この停止アクションが要求される外部ホストを指定します。 ホストが NULL 値の場合、要求はローカル・ホスト上の SRC に送信されます。 ローカル・ユーザーは、"root" として実行中でなければなりません。 リモート・システムは、リモート・システム・リソース・コントローラー要求を受け入れるように構成しておく必要があります。 つまり、 srcmstr デーモン (/etc/inittab を参照) を -r フラグで開始し、かつ、リモート要求を許可するよう /etc/hosts.equiv ファイルまたは .rhosts ファイルを構成しておく必要があります。 |
| SubsystemName | を停止するサブシステムの名前を指定します。 |
| SubsystemPID | srcstrt サブルーチンによって戻される、停止するシステムのプロセス ID を指定します。 ヌルの SubsystemPID パラメーターを指定する場合は、 SubsystemName パラメーターを指定する必要があります。 |
| StopType | サブシステムの停止要求のタイプを指定します。 このパラメーターが NULL の場合は、通常の停止が想定されます。 StopType パラメーターは、以下のいずれかの値でなければなりません。
|
| ReplyLength | 停止応答の最大長をバイト単位で指定します。 srcstop サブルーチンからの戻り時に、このフィールドは受信したサブシステム応答パケットの実際の長さに設定されます。 |
| ServerReply | サブシステムの停止応答を受け取る svrreply 構造を指します。 |
| StopFrom | srcstop サブルーチンが停止結果を標準出力に表示するかどうかを指定します。 StopFrom パラメーターが SSHELLに設定されると、停止結果は標準出力に表示され、 srcstop サブルーチンは正常に戻ります。 StopFrom パラメーターが SDAEMONに設定されると、停止結果は標準出力に表示されず、呼び出し元に戻されます。 |
戻り値
正常終了すると、 srcstop サブルーチンは SRC_OK または SRC_STPOKを返します。
エラー・コード
以下の 1 つ以上が該当する場合、 srcstop サブルーチンは失敗します。
| 項目 | 説明 |
|---|---|
| SRC_BADFSIG (SRC_BADFSIG) | 強制停止シグナルは無効なシグナルです。 |
| SRC_BADNSIG (SRC_BADNSIG) | 通常停止シグナルは無効なシグナルです。 |
| SRC_BADSOCK (SRC_BADSOCK) | 通信ソケットで停止要求をサブシステムに渡すことができませんでした。 |
| SRC_DMNA (SRC_DMNA) | SRC デーモンがアクティブではありません。 |
| SRC_INET_AUTHORIZED_HOST (SRC_INET_AUTHORIZED_HOST) | ローカル・ホストがリモート /etc/hosts.equiv ファイルにありません。 |
| SRC_INET_INVALID_HOST (SRC_INET_INVALID_HOST) | リモート・ホストでは、ローカル・ホストは認識されません。 |
| SRC_INVALID_USER (SRC_INVALID_USER) | ユーザーが root またはグループ・システムではありません。 |
| SRC_MMRY (SRC_MMRY) | SRC コンポーネントは、必要なメモリーを割り振ることができませんでした。 |
| SRC_NORPLY (SRC_NORPLY) | 応答の待機中に要求がタイムアウトになりました。 |
| SRC_NOTROOT (SRC_NOTROOT) | SRC デーモンは root として実行されていません。 |
| SRC_SOCK (SRC_SOCK) | SRC ソケット通信に問題があります。 |
| SRC_STPG (SRC_STPG) | 要求はサブシステムに渡されませんでした。 サブシステムは停止中です。 |
| SRC_SVND (SRC_SVND) | サブシステムが SRC デーモンに認識されていません。 |
| SRC_UDP (SRC_UDP) | リモート SRC ポートが /etc/services ファイルに定義されていません。 |
| SRC_UHOST (SRC_UHOST) | 外部ホストが認識されていません。 |
| SRC_PARM (SRC_PARM) | 無効なパラメーターが渡されました。 |
例
- サブシステムのすべてのインスタンスを停止するには、次のように入力します。
int rc; struct svrreply svrreply; short replen=sizeof(svrreply); rc=srcstop("MaryC","srctest",0,FORCE,&replen,&svrreply,SDAEMON);この要求は、停止タイプが以下のサブシステムを停止します。FORCEサブシステムのすべてのインスタンスsrctest日付MaryC停止の状況に関するメッセージを標準出力に出力しません。
- サブシステムの単一インスタンスを停止するには、次のように入力します。
この要求は、停止タイプが以下のサブシステムを停止します。CANCEL、以下のプロセス ID を使用 999ローカル・マシンに出力し、停止の状況に関するメッセージを標準出力に出力します。struct svrreply svrreply; short replen=sizeof(svrreply); rc=srcstop("","",999,CANCEL,&replen,&svrreply,SSHELL);
ファイル
| 項目 | 説明 |
|---|---|
| /etc/services | インターネット・サービスに使用するソケットおよびプロトコルを定義します。 |
| /dev/SRC | AF_UNIX ソケット・ファイルを指定します。 |
| /dev/.SRC-unix | 一時ソケット・ファイルの位置を指定します。 |