
Mac OS Xのすべての起動スクリプトとログインスクリプト、およびアプリの起動を追跡する
Macですべてのスタートアップアプリとログインアプリの起動とスクリプトを確認する方法を知りたいですか?この記事ではその手順を解説します。Mac OS System 9では、すべてのスタートアップ項目が「スタートアップ」というシステムフォルダにきちんと収まっていましたが、UnixベースのMac OS Xでは状況が少し複雑になり、一部のスタートアップスクリプトやログインスクリプト、アプリは、簡単にアクセスできる「ログイン項目」環境設定パネルの外で起動されます。
起動、ログイン、自動起動エージェント、plist、デーモン、アプリケーションが Mac OS X のどこに存在するかを確認します。これは、トラブルシューティング、プライバシー、およびセキュリティ上の理由に役立ちます。
一般ユーザー向け: Mac OS X の起動とログイン項目
平均的なエンドユーザーの場合、起動時に起動するように(または起動しないように)設定したいほとんどのアプリは、実際にはログインイベントで処理されます。ログインイベントは、Dock を右クリックするか、ユーザーアカウントの下にリストされている「ログイン項目」などを通じて簡単に制御できます。それが目的であれば、平均的なユーザーは、Mac OS X でシステムの起動時に(実際にはユーザーのログイン時に)アプリケーションを起動する方法を確認でき、おそらくそれでニーズが満たされるでしょう。
上級ユーザー向け: Mac OS X の起動とログイン項目、アプリ、スクリプト
この記事のこの部分は、ほとんどのユーザー向けではありません。上級ユーザーやシステム管理者であれば、前述の環境設定パネルだけでMac OS Xの起動項目やログイン項目を探し出すのはほぼ不可能です。私は最近、ユーザーが誤ってネットワークマシンにインストールしてしまった、かなり厄介なスクリプトを見つけ出すのに四苦八苦しましたが、適切な場所がわかったことで作業が大幅に楽になりました。そこで、以下にリストをご紹介します。
起動時に実行されるアプリケーション:
/Library/StartupItems
起動時に実行されるplist項目:
/Library/LaunchDaemons
/System/Library/LaunchDaemons
ユーザーログイン時に起動するアプリケーション:
* まず、システム環境設定のアカウント設定内で、そのユーザーアカウントの「ログイン項目」を確認します。
~/Library/LaunchAgents
/Library/LaunchAgents/
/System/Library/LaunchAgents/
設定されたスケジュールで実行されるアプリケーション:
crontab で次の内容を確認します。
crontab -l
カーネル拡張機能を確認する:
コマンドラインで:
kextstat
ログインとログアウトのフックをチェックして
defaults read com.apple.loginwindow LoginHook
ログアウト
defaults read com.apple.loginwindow LogoutHook
する
または両方を表示するには:
/usr/libexec/PlistBuddy -c Print
何をしているのかよくわからない場合は、上記のディレクトリやコマンドをいじらないでください。メリットよりもデメリットの方が大きくなる可能性があります。これらの場所はMac OSのコア機能を提供するため、Macの上級ユーザーとシステム管理者のみが変更する必要があります。
起動スクリプト、起動アプリ、デーモン、カーネル拡張、その他自動的に読み込まれるアプリやスクリプトを見つけるための、他に何かヒントや興味深い情報をお持ちですか?ぜひコメント欄で共有してください!