人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Solaris8でのログイン時に標準シェルがcshの時には/etc/.loginの読み込みを行いますが、
その読み込みがX-window(CDE)のログインであると判断できる要素(値、環境変数?)がありますでしょうか。

■質問の前提
Solaris8上で、標準シェルがcshのユーザを作り、/etc/.loginの中に、
---
script /tmp/`date +%y%m%d%H%M%S%`.log
logout
---
と追記し、自動的に操作履歴を取得する仕組みを考えています。

この仕組みを設定したところ、telnet,sshを開いた時には、
問題なくScriptでの操作履歴保存ができました。

ところが、X-Window(CDE)でログインする際に、パスワード入力後に、
デスクトップが開かずに、画面が進まない状態になってしまいました。

その状態で、telnetで入り、状態を見たところ、
X-Windowを開く時にも、/etc/.loginを読み込み、scriptを実行し停止した
状態になっているらしく、scriptのプロセスをkillしたところ、
/etc/.loginのscriptの次の行のlogoutを実行しX-Windowのログイン画面に
戻るようになりました。(標準シェルをcshにしているユーザで発生)

この状態では困るので、/etc/.loginの中のscriptコマンド実行前に、
X-windowのログインの場合は、実行しないという条件分岐をつけようと考えています。


●質問者: noface
●カテゴリ:コンピュータ
✍キーワード:CDE csh ETC LOGiN SCRIPT
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● hamster009
●1ポイント

logoutがよけいなんじゃないですか?

◎質問者からの返答

logoutを外すと、ログイン後、exitやCtrl+D等でscriptを終了し、操作履歴の取得を止めることが可能となってしまいます。

伺いたい事、問題としている事は、logoutを実行し、ログイン画面に戻ることではありません。

/etc/.loginの読み込み時に、どのような方法で、X-Windowでのログインであることを判別するかです。


2 ● hamster009
●1ポイント

質問自体がまちがっている気がします。


3 ● たも
●80ポイント

再現、試行をする環境がないので自信ありませんが、$DISPLAY 環境変数じゃだめでしょうか。

◎質問者からの返答

ありがとうございます。

確かに$DISPLAYでCDEでのログインの見分けが可能でした。

但し、、、私の説明不足でしたが、CDEでログインした瞬間でのscript実行は回避し、

デスクトップが開き端末エミュレータ・コンソール等を開いた際には、Scriptでログを取りたいと考えています。

ご指摘の$DISPLAYは、CDEログイン時でも、デスクトップがでた後の端末エミュレータ等でも、

値が同じ為、前述の希望の動作ができない状態にあります。


4 ● znz
●80ポイント

Solaris8環境がないので、そういう状況になったときに自分が調べる方法の紹介だけになりますが、/etc/.loginの中で

env > /tmp/`date +%y%m%d%H%M%S%`.log

のように環境変数を保存して調べてみれば良いのではないでしょうか?

環境変数でダメだった場合はttyなどいろいろと試すと良いと思います。

◎質問者からの返答

ありがとうございます。

env,setでのログ吐きも試みましたが、$DISPLAYの件と同様にCDEログイン時とデスクトップがでた後の端末エミュレータ時で、値に差がないような状態です。

シェル変数、環境変数以外、何かコマンドで区別できる値が取得できればいいのですが・・・

(ちなみにttyの値は、同じでした)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ