スクリーンセーバーが暴走した場合の復帰策

たまたま、発生したのでメモのために...
【症状】MacBook Pro (Lion)でスクリーンセーバーが解除できなくなった。
通常、パスワードなどの入力で復帰できるはずなのに、パスワードダイアログも出ない。

【対応策】
1.ssh でアクセスできる Mac か、iPad iPhone を準備します。
(できない場合は、電源ボタン長押し...orz)

ただし、該当の Mac ですでに、リモートログインを許可しておく必要があります。
こんな設定です。
システム環境設定の共有で設定しておきます。これは、何かと設定しておくと何もできなくなったときには、役立ちます。

 

f:id:s_nagano:20120414133351p:plain

(できない場合は、電源ボタン長押し...orz)

2.もう1台から ssh でアクセスします。許可されているユーザでアクセスする必要があります。

3.スクリーンセーバーのプロセスIDを確認します。

面倒なので、root で実行できるようにコマンドを一発

% sudo -s↓
管理者パスワードを入れて、ps コマンドを以下のように入力します。

# ps ax|grep [S]creenSaverEngine↓

実行結果例

79103   ??  S     19:12.30 /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine

82124   ??  S      0:00.50 /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine


この上のが実際のプロセスなので、このプロセスをkill します。
 
% sudo kill -9 79103↓
 
プロセスIDは、適宜変更してくださいね。 


これで、暴走していたスクリーンセーバーが終了するはずです。

参考にしたサイト
http://stackoverflow.com/questions/1841417/check-if-screensaver-is-active-using-mac-bash-script-command 

 

ものすごく限定された条件ですが、何かの参考に...