dtsession コマンド

目的

CDE セッションを管理します。

構文

dtsession [options] ...

説明

dtsession コマンドは、ログインからログアウトまでのユーザー・セッション中に、ICCCM 1.1 準拠のセッション管理機能を提供します。このコマンドによってウィンドウ・マネージャーが開始され、ユーザーは、セッションの保管、セッションの復元、セッションのロック、スクリーンセーバーの開始、およびデスクトップ互換クライアントに対する色の割り当てを行うことができます。

注: デスクトップ・ログイン・マネージャー dtlogin は、Xsession スクリプトを介して dtsession クライアントを自動的に起動します。 dtsession クライアントは、既存の X サーバー上の Xsession スクリプトを使用して開始することもできます。 dtsession セッション・マネージャーはウィンドウ・マネージャーを自動的に開始します。
dtsession コマンドがサポートするタスクは次のとおりです。
  • セッションを初期化する
  • ウィンドウ・マネージャーを開始する
  • ホーム・セッションまたは現行セッションを復元する
  • コマンドが出されたときまたはタイムアウトが発生したときにセッション・ロックを提供する
  • コマンドが出されたときまたはタイムアウトが発生したときにセッション・スクリーンセーバーを提供する
  • 他のデスクトップ・クライアントに対して色割り当てサーバーとして機能する
  • ホーム・セッションまたは現行セッションを保管する
  • ログアウト時に確認ダイアログを表示する
  • ログアウト時にセッション選択ダイアログを表示する
  • セッションを終了する

「Sessions (セッション)」

セッションとは、ユーザーのデスクトップに存在するアプリケーション、設定値、およびリソースの集合です。セッション管理は、特殊なセッション・マネージャー (dtsession など) がユーザー・セッションを保管および復元できるようにする、規則とプロトコルのセットです。システムにログインしたユーザーは、ログオフしたときに使用していたものと同じ実行中のアプリケーション、設定値、およびリソースを提供されます。 ユーザーが初めてデスクトップにログインしたときは、デフォルトの初期セッションがロードされます。 それ以後は、dtsession は現行セッションおよびホーム・セッションの概念をサポートします。

以下のセッションが定義されています。
初期セッション
ユーザーが初めてデスクトップにログインすると、dtsession はシステム・デフォルト値を使用してユーザーの初期セッションを生成します。詳しくは、『セッション・リソース管理』および『セッション・アプリケーション管理』を参照してください。
現行セッション
実行中のユーザー・セッションは、保管されたホーム・セッションまたは保管された現行セッションからログイン時に復元された場合も、システム・デフォルトの初期セッションの場合も、常に現行セッションと見なされます。ユーザーがセッションを終了すると、ユーザーのスタイル・マネージャーの起動設定に基づいて現行セッションが自動的に保管されます。 ユーザーが次回にデスクトップにログインすると、前に保管された現行セッションが再起動されます。 デスクトップは前回にユーザーがログアウトしたときと同じ状態に復元されます。
ホーム・セッション
もう 1 つのオプションでは、ユーザーがログアウトしたときの状態にかかわりなく、デスクトップはユーザーがログインするたびに同じ状態に復元されます。 ユーザーは、現行セッションの状態を保管してから、ログインするたびにデスクトップでこの状態のセッションが開始されるように、スタイル・マネージャーの起動を設定することができます。
ディスプレイ固有のセッション
特定のディスプレイ用に特定のセッションを実行するために、ユーザーはディスプレイ固有のセッションを作成することができます。 そのためには、ユーザーは $HOME/.dt/sessions ディレクトリーを $HOME/.dt/display にコピーすることができます。ここで、display は、実際の非修飾ホスト名です (例えば、pablo:0 は有効ですが、pablo.gato.com:0 または local:0 は無効です) 。ユーザーがディスプレイ pablo:0 でログインすると、そのデザイン・パターン固有のセッションが優先されます。

ICCCM セッション管理プロトコル

アプリケーションがログアウト時に保管され、ログイン時に再始動されるためには、そのアプリケーションは単純なセッション管理プロトコルに参加している必要があります。 dtsession コマンドは ICCCM 1.1 セッション管理プロトコルをサポートします。

その状態の保管が必要なアプリケーションは、WM_SAVE_YOURSELF プロトコルに参加することができます。 そのためには、アプリケーションは、その最上位ウィンドウの 1 つのみに WM_SAVE_YOURSELF プロパティーを設定する必要があります。セッションが保管されると、dtsession はアプリケーションの最上位ウィンドウに WM_SAVE_YOURSELF クライアント・メッセージを送信します。 アプリケーションはその状態の静止保管に進みます。状態の保管中は、アプリケーションはユーザーとどのような対話もできません。 アプリケーションはその状態をファイルに保管すると考えられますから、セッション・マネージャーは DtSessionSavePath という便利な関数を提供しています。この関数は、アプリケーションがその状態を保管できるファイルの絶対パス名を戻します。アプリケーションがその状態を保管している間、dtsession はアプリケーションからの完了通知を待ちます。 保管が完了したことを dtsession に伝えるために、アプリケーションは最上位ウィンドウの WM_COMMAND プロパティーを更新する必要があります。

アプリケーションの最上位ウィンドウの WM_COMMAND プロパティーは 2 つの目的に奉仕します。 第 1 に、このプロパティーの変化により、アプリケーションがその状態の保管を完了し、dtsession が次のアプリケーションに進むことが可能になったことが、dtsession に示されます。 第 2 に、WM_COMMAND プロパティーの値には、セッションの開始時にアプリケーションを再起動するために dtsession が使用するコマンド・ラインが含まれていると予想されます。 アプリケーションは、絶対パス名を指定して開始された場合、WM_COMMAND 値を設定するときに絶対パス名を使用する必要があります。状態の保管は必要でないが再始動が必要なアプリケーションは、アプリケーションの開始時に WM_COMMAND 値を 1 回だけ設定できます。

セッションの復元

セッションの起動時に、dtsession はどのセッションを復元するかを決定します。 次のリストはその優先順位を示しています。
  1. ディスプレイ固有の現行セッションまたはホーム・セッション
  2. 現行セッションまたはホーム・セッション
  3. 初期セッション

セッション・リソース管理

セッション・マネージャーは、X サーバーの RESOURCE_MANAGER プロパティーを使用し、そのプロパティーに基づいてすべてのアプリケーションにデスクトップ・リソースを使用可能にします。 セッション・マネージャーは、RESOURCE_MANAGER を次のようにロードします。
  1. システム・デフォルト・リソースをロードする。
  2. システム管理者固有のリソースをマージする。
  3. ユーザー指定のリソースをマージする。

デスクトップのデフォルト・リソースは、/usr/dt/config/$LANG/sys.resources ファイルにあります。 これらのリソースは、RESOURCE_MANAGER プロパティーを通して各ユーザー・セッションに使用可能にされます。このファイルは、以降のデスクトップ・インストール時に無条件に上書きされるため、編集しないでください。

システム管理者は、/etc/dt/config/$LANG/sys.resources ファイルを作成することにより、システム・デフォルト・リソースを指定変更するか、さらに多くのリソースを指定することができます。このファイルはセッションの起動時にデスクトップ・デフォルト・リソースにマージされるため、このファイルには新しいリソース仕様または更新されたリソース仕様のみを入れるようにしてください。それはデスクトップ・デフォルト・リソース・ファイルのコピーを作成するよりも好ましいといえます。このファイルで指定されたリソースは、RESOURCE_MANAGER プロパティーを通して各ユーザー・セッションに使用可能にされます。このファイルで指定されたリソースは、デスクトップ・デフォルト・リソース・ファイルで指定されたものより優先されます。

ユーザーは、$HOME/.Xdefaults ファイルを編集して、デスクトップ・デフォルト・リソースとシステム管理者リソースを指定変更することができます。 このファイルで指定されたリソースは、RESOURCE_MANAGER プロパティーを通してそのユーザー・セッションのみに使用可能にされ、デスクトップ・デフォルト・リソース・ファイルやシステム管理者リソース・ファイルで指定されたリソースより優先されます。

注: X ツールキット組み込み機能は、アプリケーション・リソースを RESOURCE_MANAGER または $HOME/.Xdefaults のいずれかからロードするが、両方からはロードしないことを指定します。 通常、これはユーザーの $HOME/.Xdefaults ファイルが無視されることを意味します。しかし、セッション・マネージャーは、セッション起動時に RESOURCE_MANAGER にマージして、$HOME/.Xdefaults を調整します。ユーザーがその $HOME/.Xdefaults ファイルを変更すると、それらの変更は、ユーザーが ReloadResources アクションを起動するまで、新しいアプリケーションには不可視です。

ReloadResources アクションは、システム指定のリソース、システム管理者指定のリソース、およびユーザー指定のリソースと一緒に、RESOURCE_MANAGER を再ロードするように、セッション・マネージャーに指示します。それによって、システム管理者指定またはユーザー指定のリソース・ファイルに対して行われた変更が、新しいアプリケーションに使用可能になります。

セッション・アプリケーション管理

セッション起動時に、セッション・マネージャーはセッションの一部として保管されたアプリケーションをすべて再起動します。 ユーザーの初期セッションの一環として復元される、システムのデフォルトのアプリケーション・セットは、/usr/dt/config/$LANG/sys.session ファイルにあります。 このファイルは、以降のデスクトップ・インストール時に無条件に上書きされるため、編集しないでください。

システム管理者は、/etc/dt/config/$LANG/sys.session ファイルを作成して、ユーザーの初期セッションの一部として復元されたアプリケーションのセットを置き換えることができます。このファイルは、リソース・ファイルと異なり、デスクトップ・デフォルト・ファイルを完全に置き換えるので、システム・デフォルト・ファイルのコピーを作成して必要なすべて変更を行うことができます。

ウィンドウ・マネージャー

dtsession コマンドはウィンドウ・マネージャーを開始します。 デフォルトでは、/usr/dt/bin/dtwm が開始されます。 wmStartupCommand リソースを使用すれば、代替ウィンドウ・マネージャーを指定することができます。詳しくは、ワークスペース・マネージャーの仕様を参照してください。

スタイル・マネージャー

スタイル・マネージャーは、ユーザーが現行セッションについてデスクトップおよび X サーバーのさまざまな設定を変更するためのインターフェースを提供します。 詳しくは、スタイル・マネージャの仕様を参照してください。

カラー・サーバー

dtsession コマンドは、デスクトップ用のカラー・サーバーとして機能し、その構成に使用できる次のリソースのセットを提供しています。
foregroundColor
前景色にピクセルを割り当てるかどうかを制御します。
dynamicColor
読み取り専用の色を割り当てるかどうかを指定します。
shadowPixmaps
トップ・シャドーまたはボトム・シャドーに色を割り当てるかどうかを指定します。
colorUse
色の割り当てを制限します。
writeXrdbColors
*background リソースと *foreground リソースをリソース・データベースに書き込むかどうかを指定します。
詳しくは、カラー・サーバー・リソースのセクションを参照してください。

セッション・ロック

dtsession コマンドは、セッションのロックを提供します。現行セッションは、フロント・パネルのロック・アイコンを押して直接ロックできます。 X サーバーがサポートしている場合は、指定された非アクティブ期間後に現行セッションをロックすることができます。 セッションをアンロックするには、ユーザーは、自分のログイン・パスワード、root ユーザーのログイン・パスワード、または keys リソースで指定されたいずれかのユーザーのログイン・パスワードを入力する必要があります。 keys リソースについて詳しくは、『画面ロックと画面保管のリソース』を参照してください。

dtsession コマンドは、サービス名 dtsession の PAM 対応セッション・マネージャーです。 このプログラムは、セッションのアンロックのために従来型の UNIX 認証のほかに PAM 認証をサポートします。 DCE で必要とされるような追加の再認証機能を、個別ベンダーが追加することもできます。

認証に PAM を使用するようにシステム全体の構成を設定するには、root ユーザー・アクセス権を確立し、/etc/security/login.cfg ファイルの usw スタンザの auth_type 属性の値を PAM_AUTH に変更します。

PAM が使用可能であるときに使用される認証メカニズムは、/etc/pam.conf 内のログイン・サービスの構成によって異なります。dtsession コマンドは、auth モジュール・タイプに関する /etc/pam.conf エントリーを必要とします。 dtsession サービス用の /etc/pam.conf では、次の構成が推奨されます。
  dtsession        auth               required       /usr/lib/security/pam_aix

スクリーンセーバー

dtsession コマンドは、セッション・ロックの一部として外部スクリーンセーバーをフロント・パネルから起動するためのサポートを提供します。また、X サーバーによるサポートがある場合は、指定された非アクティブ期間後のスクリーンセーバーの起動をサポートします。 スクリーンセーバーをデスクトップに統合する方法については、スクリーンセーバーの仕様を参照してください。

X サーバーのスクリーンセーバー拡張機能

dtsession コマンドが指定された非アクティブ期間後にセッション・ロックまたはスクリーンセーバー起動を提供できるかどうかは、X サーバーのスクリーンセーバー拡張機能が使用可能かどうかで決まります。 dtsession コマンドは、X Consortium Sample X11 Screen Saver Extension 1.0 と HP X Screen Saver Extension をサポートします。 dtsession コマンドがこれらの拡張機能の両方またはいずれかを認識できるかどうかは、ベンダーに依存します。

セッション・マネージャーの始動

dtsession コマンドは、Xsession スクリプトから開始する必要があります。Xsession はログイン・マネージャーの仕様で説明されています。 Xsession の開始は、デフォルトのログイン・シーケンスの一環として dtlogin から行うことをお勧めします。ただし、一部のシステムでは、xinitx11startstartx などのプロキシー・プログラムから Xsession を開始することもできます。

カラー・サーバー・リソース

項目 説明
   
colorUse
クラス:
ColorUse
クラス型:
string
デフォルト:
DEFAULT
説明:
ユーザー・インターフェースに使用する色の数を指定します。 カラー・サーバーは、次のように、画面の表示面の数に基づいてモニターのタイプを判別します。
1、2、または 3 面 (B_W)
単色システムを指定します。 カラー・パレットはユーザー・インターフェースに 2 つのカラー・セルを使用します。この構成では、BlackWhite (黒白) と WhiteBlack (白黒) の 2 つのカラー・パレットのみが使用可能です。これらのパレットを動的に変更することはできません。 パレットを変更するには、カラー・パレットを使用しているすべてのアプリケーションを再起動する必要があります。このリソース値により、ShadowPixmaps は True に、ForegroundColor は (選択されたパレットに応じて) 黒または白のいずれかに強制されます。
4 または 5 面 (LOW_COLOR)
ロー・カラー・システムを指定します。 カラー・パレットには 2 つのカラー・セットがあり、黒および白 (カラー・セル 0 および 1) を含む最大 12 のカラー・セルがユーザー・インターフェースに使用されます。 カラー・セルの数は、リソース ShadowPixmaps および ForegroundColor を使用して減らすことができます。
6 面 (MEDIUM_COLOR)
ミディアム・カラー・システムを指定します。 カラー・パレットには 4 つのカラー・セットがあり、黒および白 (カラー・セル 0 および 1) を含む最大 22 のカラー・セルがユーザー・インターフェースに使用されます。 カラー・セルの数は、リソース ShadowPixmaps および ForegroundColor を使用して減らすことができます。
7+ 面 (HIGH_COLOR)
ハイ・カラー (多彩) システムを指定します。 カラー・パレットには 8 つのカラー・セットがあり、黒および白 (カラー・セル 0 および 1) を含む最大 42 のカラー・セルがユーザー・インターフェースに使用されます。 カラー・セルの数は、リソース ShadowPixmaps および ForegroundColor を使用して減らすことができます。
dynamicColor
クラス:
DynamicColor
クラス型:
boolean
デフォルト:
true
説明:
このリソースは、True または False の値をとります。 dynamicColor リソースは、使用するカラー・セルの数を減らすために使用されます。パレットを選択した後で変更しないと思われる場合は、dynamicColor を False に設定できます。False に設定した場合は、デスクトップ・スタイル・マネージャーを使用して色を動的に変更することはできません。選択されたパレットは次のセッションで有効になります。 次回にセッションが開始されると、カラー・サーバーはすべてのクライアントが共有できる読み取り専用カラー・セルを使用するので、使用されるカラー・セルの数が減ります。
foregroundColor
クラス:
ForegroundColor
クラス型:
string
デフォルト:
DYNAMIC
説明:
このリソースは、White、Black、または Dynamic の値をとります。 foregroundColor リソースでは、すべてのテキスト (前景) が、ピクセル 0 または 1 (Black または White) のいずれかを使用することになるか、あるいは、ColorSet ごとに背景色に応じて変化する前景専用のカラー・セルを持つ (Dynamic) ことになります。 White または Black に設定すると、ColorSet ごとに使用されるカラー・セルの数が 1 つずつ減ります。
shadowPixmaps
クラス:
ShadowPixmaps
クラス型:
string
デフォルト:
DEFAULT
説明:
カラー・システムの場合、このリソースは True または False の値をとります。 True の場合、topShadowColorbottomShadowColor は背景と同じピクセルを使用します。また、単一カラーの代わりに topShadowPixmapbottomShadowPixmap が指定され、3-D の外観が得られます。 その場合、カラー・セルの数が ColorSet ごとに 2 つずつ減ります。このリソースのデフォルトは、色面が 4 以下 (カラー・セルが 16 以下) のシステムでは True、色面が 4 を超えるシステムでは False です。
writeXrdbColors
クラス:
WriteXrdbColors
クラス型:
boolean
デフォルト:
true

画面ロックと画面保管のリソース

項目 説明
   
keys
クラス:
Keys
クラス型:
unsigned char
デフォルト:
NULL
説明:
ユーザーによってロックされているときにはいつでも画面をアンロックできるキー・ホルダーをリストします。これはコンマで区切られたユーザー ID のリストです。 例えば、あるセッション中に、ユーザー kim が次のリソースをアクティブにしている場合、ユーザー fred および keith は、kim が画面をロックしたときでも、それをアンロックできます。
Dtsession*keys: fred,keith
passwordTimeout
クラス:
passwordTimeout
クラス型:
unsigned int
デフォルト:
10
説明:
パスワード・ダイアログが画面から除去されるまでの時間 (秒) を指定します。 画面がロックされると、ポインターはロック・カーソルを表示し、ユーザー・パスワードを要求するダイアログが表示されます。 passwordTimeout 秒以内にポインターまたはキーボードからのアクティビティーが検出されない場合は、ダイアログは画面から除去されます。 ポインターまたはキーボード・イベントが検出されるとすぐにダイアログが再表示されます。 passwordTimeout が 0 の場合は、パスワード・ダイアログは画面がロックされている間ずっと表示されたままになります。 デフォルト値は 10 秒です。

その他のリソース

項目 説明
queryServerSettings
クラス:
QueryServerSettings
クラス型:
boolean
デフォルト:
false
説明:
dtsession コマンドがログアウト時にサーバーにそのすべての設定値を照会するか、あるいはデスクトップのスタイル・マネージャーを使用して設定された設定値のみを保管するかを指定します。 サーバーに照会することにより、すべての設定値が確実に保管されます。しかし、全照会を行うとパフォーマンスの低下が生じます。 デフォルト値は False です。つまり、サーバーは照会されません。
saveFontPath
クラス:
SaveFontPath
クラス型:
boolean
デフォルト:
false
wmStartupCommand
クラス:
WmStartupCommand
クラス型:
executable path
デフォルト:
NULL
説明:
ログイン時に代替ウィンドウ・マネージャーの起動が可能になります。 このリソースが NULL の場合、dtsession/usr/dt/bin/dtwm を起動します。 代替起動のコマンドは次のようになります。
 Dtsession*wmStartupCommand:   /usr/bin/X11/mwm
このコマンドにはシェルに対するコマンドを含めてはなりません。また、引用符で囲んではなりません。/usr/dt/bin/dtwm 以外のウィンドウ・マネージャーを使用した場合、クライアントは復元されますが、正しい位置に復元されないことがあります。デフォルトでは、このリソースの値は NULL です。

終了状況

次の終了値が戻されます。

項目 説明
0 正常終了。
>0 エラーが発生しました。

  1. 前のセッションを復元せずにコマンド・ラインからセッション・マネージャーを起動するには、次のように入力します。
    dtsession -norestore

位置

/usr/dt/bin/dtsession

ファイル

項目 説明
/usr/dt/config/$LANG/sys.session ユーザーの初期セッション用のアプリケーションのデスクトップ・デフォルト・セット。
/etc/dt/config/$LANG/sys.session ユーザーの初期セッション用のシステム管理者指定のアプリケーション・セット。
/usr/dt/config/$LANG/sys.resources デスクトップ・デフォルト・リソース。
/etc/dt/config/$LANG/sys.resources システム管理者指定のリソース。
$HOME/.Xdefaults ユーザー指定のリソース。
注: dtsession コマンドはセッション情報を $HOME/.dt/display または $HOME/.dt/sessions に保管します。 これらのディレクトリーの内容をユーザーが直接編集してはなりません。
/usr/dt/app-defaults/$LANG/Dtsession デフォルトの dtsession リソース。