システム管理
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ログイン中のコマンド履歴を残す方法

Y_Ya
時折のコントリビューター

ログイン中のコマンド履歴を残す方法

.loginファイルに

exec script -a /tmp/log

exit

を追加して、あるユーザでログインしたときには、コマンドの履歴を残すように設定しました。

ログアウト時に.logoutファイルにてこのファイルを他のファイルにコピーするように設定しましたが、

scriptコマンドを実行するとcshのプロセスIDが変更されるため(だと思いますが)

.logoutの内容が実行されません。

うまく.logoutも実行される方法はあるでしょうか?
2 件の返信
hazelwood
信頼あるコントリビューター

ログイン中のコマンド履歴を残す方法

これは、exec script -a /tmp/log により、ログインしたときに作られるcshがscriptでオーバーライドされるためと思います。cshプロセスが、scriptプロセスに置き換わってしまうので、.logoutが実行されないのだと思います。

残念ながら対象方法は思いつきません。

(execを削ってみましたが、script終了時にcshに戻ってしまいます。これは多分、希望している動作ではないでしょう。)

hazelwood
信頼あるコントリビューター

ログイン中のコマンド履歴を残す方法

posix-shなら、execを削ることで、うまく行きます。(.logoutではなく、.profileに trap "cmd" 0で設定することになりますが。)

どうしてもcshでなければならないなら、最初からファイル名を個別につけるなどの方法で逃げられませんか?

いずれにしても、(普通).loginや、.profileはユーザが書き換えることができるという落とし穴がありそうですが。