connect コマンドを使用する場合の考慮事項
connect コマンドを使用する場合に重要な考慮事項を以下に示します。
casp1032jp
connect コマンドを使用する場合に重要な考慮事項を以下に示します。
- 端末上のユーザは connect コマンドを使用して通信を開始する必要があります。同じユーザは、disconnect コマンドを使用してSpectroSERVERとの通信を終了する必要があります。
- 最初のユーザが connect コマンドを入力すると、CLI ローカル サーバはSpectroSERVERに接続されます。
- 同じ CLI ローカル サーバを使用する他の CLI のユーザは、初期 のランドスケープ マップにあるSpectroSERVERSpectroSERVERにのみ接続できます。すべてのユーザが切断すると、connect コマンドを使用して、別のランドスケープ マップ内のSpectroSERVERに接続します。
- SpectroSERVERに正常に接続するには、接続コマンドの最初のユーザは、元の のCA SpectrumSpectroSERVERデータベースでユーザとして定義されている必要があります。
- bash シェル内で CLI を実行する Windows ユーザは、CLISESSID も定義する必要があります。
- 特定のユーザの端末デバイスは、ttyslot(3V) 関数を使用して特定されます。
- cron スクリプトは ttyslot に関連付けられていません。その結果、ttyslot 関数はすべての cron スクリプトについて 0 を返します。すなわち、cron スクリプトとして同時に実行される 2 つの CLI スクリプトは、CLI ローカル サーバでは 1 人の CLI ユーザとして認識されるために、予測不能の結果に結びつきます。そのため、環境変数 CLISESSID をエクスポートするための行を、スクリプトの先頭に挿入する必要があります。CLISESSID を一意の数値に設定します。これで、CLI は異なる cron スクリプトを区別できます。以下の例は、スクリプト内で一意の CLI セッション ID を定義します。CLISESSID=$$; export CLISESSID
- この例は、スクリプトを実行するシェルのプロセス ID として CLISESSID を設定します。CLI は、ttyslot 関数がゼロを返すときに、ユーザを識別するために CLISESSID を使用します。各 CLI のセッションに対して CLISESSID を 1 回設定します。cron スクリプトとして実行している CLI のスクリプトが他の CLI のスクリプトを呼び出す場合、トップレベルのスクリプトのみが CLISESSID 環境変数を設定します。スクリプトの先頭で新しいシェル(#!/bin/sh)を呼び出さない場合、他の CLI のスクリプトは同じプロセス ID の下で実行されます。他のスクリプトで新しいシェルを呼び出すには、CLISESSID をエクスポートし、接続して再度切断します。
- 一部の環境または設定では、コマンドがコマンド ラインから入力されたときでも、ttyslot 関数がゼロを返す場合があります。このような場合、connect コマンドは以下のエラーを返します。
このような場合は、コマンド ラインから、または .cshrc やその他のスタートアップ ファイルから、CLISESSID を設定します。connect: variable CLISESSID not set - CLI では、ユーザ名と端末デバイスを使用して、各 CLI ユーザを識別します。端末デバイスから同時に複数のスクリプトを実行するユーザは、同じユーザとして CLI に表示されます。スクリプトがバックグラウンドで実行されており、別のスクリプトがフォアグラウンドで実行されている場合、または複数のスクリプトがバックグラウンドで実行されている場合、CLI は予測不能の結果をもたらす場合があります。たとえば、スクリプト A1 は現在のモデルをモデル A に設定し、スクリプト B1 (同じ端末デバイスから同じユーザによって実行される)は現在のモデルをモデル B に設定するとします。スクリプト A1 がモデル A に対して更新コマンドを実行した場合、更新コマンドはスクリプト B1 のモデル B に対しても実行されます。特定の端末デバイスからは、同時に 1 つの CLI セッションのみを実行します。同時に複数の CLI のセッションを実行するには、個別の端末デバイスから実行するか、または CLISESSID 環境変数をそれぞれ一意の値に設定して、at(1) または batch(1) コマンドを使用して実行します。