システム環境設定には、「ログイン項目」というのがあって、ログ
イン時に実行されるプログラムが登録できます。同様に、ログアウ
ト時に実行されるプログラムは登録できないでしょうか。
困っているのは、Palm Desktop がいちいちログイン項目に余計な
プログラムを登録するので、それをログアウト項目で消してやろう
と思って。
Palm Desktop ですが、結論としてはそんなに害はなかったみたい
ではあります。最初は、起動時に妙に hdid (ディスクのマウント)
が増殖している時間がかかるようになって、Palm Desktop が怪し
いと思っていました。手動で消しても遅さは変らないので、起動時
の遅さに関しては、Palm Desktop は無罪でした。でも、バックグ
ランドで動いているのは、CPU を食ってバッテリを減らすので、動
かない方がいいのは、確かです。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
In article <YAS.03Au...@kirk.is.tsukuba.ac.jp>, y...@is.tsukuba.ac.jp (Yasushi Shinjo) writes
> システム環境設定には、「ログイン項目」というのがあって、ログ
> イン時に実行されるプログラムが登録できます。同様に、ログアウ
> ト時に実行されるプログラムは登録できないでしょうか。
start/stop が引数ってことはないですか?
(単なる思い付き...)
---
Shinji KONO @ Information Engineering, University of the Ryukyus,
PRESTO, Japan Science and Technology Corporation
河野真治 @ 琉球大学工学部情報工学科,
科学技術振興事業団さきがけ研究21(機能と構成)
> 河野真治 @ 琉球大学情報工学です。
>
> In article <YAS.03Au...@kirk.is.tsukuba.ac.jp>, y...@is.tsukuba.ac.jp (Yasushi Shinjo) writes
> > システム環境設定には、「ログイン項目」というのがあって、ログ
> > イン時に実行されるプログラムが登録できます。同様に、ログアウ
> > ト時に実行されるプログラムは登録できないでしょうか。
>
> start/stop が引数ってことはないですか?
それって/Library/StartupItems/の話ですよね?
今現在どうなっているのかは分かりませんが、確かにそうできるような
仕様にはなっているらしいです。ただ、その話を聞いた時点ではまだ
実装されてないということでしたが。(いつの話だったか忘れました(^^;))
で、あれはシステム起動時・終了時の話で、新城さんのお話はユーザ
ログイン・ログアウト時の話なので「ログアウト=システム終了」で
ないのなら使えないのではないかと。
で、OSX-users MLに参考になりそうなのがありました。
<http://www.freeml.com/message/osx-...@freeml.com/0000316>
これはログイン時とログアウト時にボリュームの不可視状態を変更する
方法についてですが、キモの部分は使えるのではないかと。
#「LoginHookとLogoutHookを登録」と「LogoutHookを作成」の所が
#改行されてしまってますがあれはそれぞれ一行です。ブラウズ環境に
#よるのかもしれませんが。
In article <090820031221008463%ayas...@mac.com>
Masaya Oda <ayas...@mac.com> writes:
> で、OSX-users MLに参考になりそうなのがありました。
> <http://www.freeml.com/message/osx-...@freeml.com/0000316>
この作戦でうまく行きました。そのページから参照されている次の
ページもいいですね。
http://homepage1.nifty.com/alchemy/os_x/psync.html
http://www.tech-arts.co.jp/macosx/macosx-jp/htdocs/11000/11023.html
ちょっとトラブったのは、com.apple.loginwindow は、root のも
のを変更する必要があるということです。そのドキュメントには
sudo と書かれているのでそうかなあとは思ったのですが、
defaults コマンド自体は、個人の
~/Library/Preferences/com.apple.loginwindow.plist を見ている
ので、もしやと思って試したけれど、やはりだめでした。
/var/root/Library/Preferences/com.apple.loginwindow.plist が
正解です。
------------------------------------------------------------
% su
Password:
# defaults write com.apple.loginwindow LogoutHook /usr/local/etc/run-logouthook
# defaults read com.apple.loginwindow LogoutHook
/usr/local/etc/run-logouthook
#
------------------------------------------------------------
もう1つの問題は、LogoutHook で登録したプログラムは、やや恐
ろしいことに root 権限で実行されます。それはそれで便利とも言
えますが、ホーム・ディレクトリおいたプログラムを実行するとい
う作戦の場合は困ります。(その一般ユーザのスクリプトが攻撃さ
れたら root が取られる。) それで、su コマンドで一般ユーザの
権限に落として実行することにしました。
------------------------------------------------------------
% ls -l /usr/local/etc/run-logouthook
-rwxr-xr-x 1 root staff 108 Aug 10 04:26 /usr/local/etc/run-logouthook
% cat /usr/local/etc/run-logouthook
#!/bin/sh
if [ -x "$HOME/.logouthook" ]; then
su "$USER" -c "$HOME/.logouthook"" $1" >/dev/null 2>&1
fi
%
------------------------------------------------------------
LogoutHookで登録されたプログラムが実行される時には、第1引数
にはユーザ名が入ります。UID は root ですが、HOME や USER と
いった環境変数は、そのユーザに変更されています。su コマンド
でUSER環境変数のユーザに UID を変更してから、~/.logouthook
を実行します。
In article <090820031221008463%ayas...@mac.com>
Masaya Oda <ayas...@mac.com> writes:
> > start/stop が引数ってことはないですか?
> それって/Library/StartupItems/の話ですよね?
> 今現在どうなっているのかは分かりませんが、確かにそうできるような
> 仕様にはなっているらしいです。
/System/Library/StartupItems/ ですね。stop はないように見え
ます。たとえば、SSH ならこんな感じです。
------------------------------------------------------------
% pwd
/System/Library/StartupItems/SSH
% ls
Resources SSH StartupParameters.plist
% cat SSH
#!/bin/sh
. /etc/rc.common
##
# Start up secure login server
##
if [ "${SSHSERVER:=-NO-}" = "-YES-" ]; then
中略(鍵の生成など)
/usr/sbin/sshd
fi
%
------------------------------------------------------------
defaults コマンドは、NeXT 由来の流儀なんですか。
これで、ログアウト時に掃除はできるようになったけれど。