私は『Take Control of Using Lion』の著者ですが、実はMac OS X 10.7 Lionはあまり好きではありません。本書では私の偏見は明確に表現されていませんが、注意深く読めば十分に感じ取ることができるでしょう。そして、私が最も気に入らないLionの機能の一つがResume(再開)です。これは内心「ゾンビ」だと思っています。Resumeは2つの部分から構成されています。
- コンピュータを起動すると、Lionはシャットダウン直前に実行されていたすべてのアプリケーションを起動しようとします。これは、再起動、ログアウトして再度ログインする場合にも当てはまります。
- アプリケーションを起動すると、Lion は、そのアプリケーションを前回終了したときに開いていたものと同じドキュメントとウィンドウをすべて開こうとします。
こうした動作は、コンピュータを再起動したりアプリケーションを終了したりする目的に真っ向から反するものであり、私は好きではありません。アプリケーションを終了するのは、そのアプリケーションのすべてのウィンドウを閉じ、開いているすべてのドキュメントを忘れさせるためです。コンピュータを(頻繁に)再起動するのは、すべてのゴミを払い落とし、メモリをクリアし、アプリケーションが実行されていないクリーンな状態にするためです。アプリケーションが自動的に起動するのは望ましくありません(「ユーザとグループ」環境設定パネルでログイン項目として指定したいくつかのユーティリティを除く)。また、起動したアプリケーションが、
過去の古いウィンドウやドキュメントを大量に再度開くのも望ましくありません。
私の本では、これらの機能を制御する方法も解説しています。私の場合は、これらの機能をオフにするということです。コンピューターを再起動したり、アプリケーションを起動したりするたびに、白紙の状態に戻したいのです。私のやり方は以下のとおりです。
- システム起動時にアプリケーションが再起動するのを防ぐには、シャットダウン時に予防策を講じる必要があります。シャットダウン、再起動、またはログアウト時に表示されるダイアログで、 「再ログイン時にウィンドウを再度開く」というチェックボックスのチェックを外します。もちろん、これはダイアログが表示されない状況を避けることを意味します。特に、最近リリースされた10.7.4アップデートまでは、Lionは以前にチェックを外していてもデフォルトでこのチェックボックスをオンにしていたためです。しかし、このアップデートのおかげで、このチェックボックスはオフのままになりました。Appleのちょっとした親切に感謝すべきかもしれません。
-
起動時にウィンドウが書類やウィンドウを復元しないようにするには、一般環境設定パネルで「アプリケーションを終了して再び開いたときにウィンドウを復元」のチェックを外す。(このハイフンは Apple のミスで、私のミスではない。Apple は実際に「reopen」と「re-opening」を別の場所に書く。) 代わりに、TinkerTool などのサードパーティ製ユーティリティを使って個々のアプリケーションごとにこの動作をオフにすることもできる。これは私が「Lion の不満? TinkerTool を忘れるな」(2011 年 10 月 29 日)で説明した通りだが、私はこの機能をグローバルにオフにすることを推奨する。
しかし、謎があります。「アプリケーションを終了して再起動したときにウィンドウを復元する」のチェックを外しているにもかかわらず、一部のアプリケーションは起動時にゾンビウィンドウを復活させることがあります。最近まで、この謎にはあまり注意を払っていませんでした。Lionの不可解な迷惑機能の一つとして片付けていました。ゾンビは復活するのが常なので、一部のゾンビが死んだままでいなくても驚きませんでした。私はため息をつき、突然現れた
ウィンドウを手動で閉じました。
でも同時に、読者にLionの使い方を教えるはずなのに、私自身がまだLionを完全に使いこなせていないことに苛立ちを感じていました。Lionがリリースされてから1年も経っているのに、いまだにこれらの問題を解決できていないなんて。本当に恥ずかしい。
ところが数日前、突然、あるパターンに気づいたような気がした。いくつかテストしてみたところ、案の定、そこにあった。謎は解けたのだ。
皆さんが今まさにハラハラドキドキしていることは承知していますので、これ以上は言いません。答えはこうです。コンピューターをシャットダウン(または再起動、ログアウト)した時点でアプリケーションが実行中の場合、そのアプリケーションは次回起動時に、たとえ「閉じる」ように設定していたとしても、ゾンビウィンドウを再び開きます。
このパターンに気づいた途端、その理由も理解できました。Lionでは、アプリケーションを終了する方法が複数あります。アプリケーションを終了する場合( [アプリケーション名]メニューから「[アプリケーション名]を終了」を選択するか、Command-Qキーを押して)、アプリケーションは正常に終了し、ゾンビウィンドウに関する設定が適用されます。しかし、Lionがアプリケーションを終了する場合(アプリケーションの実行中にコンピュータに再起動またはシャットダウンを指示した場合)、全く異なるアプローチが取られます。Lionは、できるだけ早くこの状態から抜け出す必要があると判断し、Lionで新たに導入された「Sudden Termination(突然終了)」というプロトコルを使用します(対象のアプリケーションが対応している場合)。
Sudden Termination の目的は Resume をサポートすることです (ご存知ですよね?)。Resume をサポートするほとんどのアプリケーション (おそらくすべて) は Sudden Termination もサポートしており、ここに問題があります。
iOSと同様に、Sudden Termination対応アプリケーションは、現在開いているウィンドウを含む状態を常に保存するという考え方です。これにより、終了時に行うべき作業がなくなり、すべての作業が既に完了しているため、アプリケーションは迅速に終了できます。Sudden Terminationでは、アプリケーションは終了されることさえ通知されません(技術的には、Quitイベントが送信されることはありません)。代わりに、システムは単にプラグを抜くだけです。つまり、アプリケーションをメモリから簡単に消去し、画面から削除するだけです。
これがどうなるかお分かりですか?アプリケーションは瞬時に終了してしまうため、終了に関連するタスクを実行する機会が全くありません。特に、再開に関する指示に従う機会は全くありません!アプリケーションはこれまでずっと状態を保存してきましたが、Lionの再起動またはシャットダウンプロセスによって突然終了すると、その状態はそのまま残され、次にアプリケーションを起動した際にシステムがその状態を見つけることになります。その結果、ゾンビウィンドウが復活してしまうのです。
当然ながら、私はこれをバグだと考えています。しかし、これはデスクトップをiOSデバイスに近づけるという新しいLionの理念に根ざしているため、Appleがすぐに(あるいは永遠に)修正するとは思っていません。開発者向けドキュメントを読むと、Appleがプログラマーたちに「突然の終了はユーザーエクスペリエンスを向上させるために設計された」良いことだと説得しているのが分かります。(また、これは2011年8月5日の「Lionはやめ屋だ」で私が不満を述べた自動終了と同列であることも分かります。)幸いなことに、Appleがこの問題を修正するまで(おそらく修正されることはないでしょうが)、簡単ながらも面倒な回避策があります。コンピューターを再起動またはシャットダウンする前に、すべての
アプリケーションを終了します。ゆっくりと、慎重に、手動で、自分で、一つずつ。