OS Xのアプリケーションの自動終了を無効にする方法はありますか?


11

OS X Lionに、自動終了したくない特定のアプリケーションの自動終了を無効にするよう指示する方法はありますか?

FYI ライオンは、特定のアプリケーションで使用したくない場合はどうすればよいかわからない場合は非常に便利です。

Lionは、リソースが必要であると判断した場合、およびそれらを使用しているように見えない場合、実行中のアプリケーションを終了します。アプリケーションが「使用中」かどうかを判断するためのヒューリスティックは非常に保守的です。アクティブなアプリケーションであってはならず、可視化された最小化されたウィンドウがあってはなりません。

たとえば、TextEditウィンドウが開いていない状態で別のアプリケーションに切り替えたときに、TextEditが自動的に終了しないようにします。

自動終了のMac App Programming Guideセクションを見て、Noの値を持つNSSupportsAutomaticTerminationキーをTextEditのInfo.plistファイルに追加してみようと思いました。(動作しませんでした:TextEditを開くとクラッシュします。)

注目すべきは、ファイルにNSSupportsAutomaticTerminationキーが含まれていないことです(つまり、AppleはNSProcessInfoを使用して自動終了を有効にしていることを意味します)。(NSSupportsAutomaticTerminationキーと値Noを含む変更されたInfo.plistでTextEditに自己署名することにより、これが機能しないことを確認しました)。

注意すべき副作用の1つは、Info.plistファイルの内容を変更すると、開くときにTextEditがクラッシュすることです。原因はクラッシュログから「コード署名が無効です」と記録されています。つまり、TextEditアプリとそのすべてのコンテンツはコード署名されています。回避策はcodesign、「コード署名タスク」で説明したように、コマンドと自己署名ルート証明書を使用してアプリに自己署名することです。

私がこれまで試した後、TextEditはまだ自動終了に従います。


1
だから...あなたがアプリに自己署名した場合、それは動作しますか?
jtbandes

1
いいえ、Info.plistに追加した内容に関係なく、自己署名後でもプログラムは自動的に終了します
MrDaniel

1
Appleが開発ツールで提供するTextEditのサンプルソースをダウンロードし、自動終了に登録するNSProcessInfoを編集(または削除)しようとしましたか?
Cajunluke

いいえ、それを試していない、それはこの場合に動作するはずです。しかし、この質問はTextEditを超えています。開発者のソースコードレベルの介入なしでこれを回避できるかどうかは、もう少し疑問です。自動終了をサポートするアプリのソースコードに常にアクセスできるとは限らないためです。
MrDaniel

1
「これがAppleの仕組みです」それは偽物です。これは新しい機能であり、その点ではあまり宣伝されていません。Apples Docsからは、OSがプログラムを自動終了するために何が必要かさえ明確ではありません。また、Appleはこれを宣伝せず、エンドユーザー向けのLion機能ページにも言及していません。新しいAppleが試みていることだと思います。エンドユーザーがこれを好まない場合は、Appleおよび開発者に声をかけて、改善を図るべきです。
-MrDaniel

回答:


14

あなたの願いは私のターミナルコマンドです;-)

defaults write -g NSDisableAutomaticTermination -bool yes

自動終了は実際にアプリケーションを終了するのではなく、非表示にするため、これを有効にするには適切に終了している必要があります。


2
user22760を見つけてください。上記のように試してみましたが、動作します、ありがとう。TextEdit.appのテストケースは、デフォルトを実行し、TextEditを開いて終了した後、自動終了しなくなりました。TextEditを再度開くと、ウィンドウが開かず、バックグラウンドで実行されている状態で自動終了しなくなります。
-MrDaniel

面白い。このコマンドを試した後、実際に動作します。ただし、元に戻すことはより困難であることが証明されています。デフォルトの書き込み-g NSDisableAutomaticTermination -bool no、false、またはキーの削除は効果がなく、アプリケーションは自動的に終了しません
DrFloyd5

この奇跡のコマンドはマーベリックスで私のために機能します!セッションに戻ったとき、または新しいセッションを開いたときに有効になります。
ニコラスバルブレスコ14年

アプリを起動して手動で終了し、再起動して効果を適切に確認するための追加の指示に感謝します!
jtheletter

1

ハードウェアがサポートしている場合、これを修正する確実な方法があります。Mac OS X 10.7(Lion)からMac OS X 10.6(Snow Leopard)にアップグレードできます。

Lionを実行するすべてのハードウェアがこの改善されたオペレーティングシステムをサポートできるわけではありませんが(残念ながら、私の2011年半ばのMacBook Airはサポートしていません)、非自動終了、Rosettaなどの機能が含まれていますプロセッサ)、および優れたWireTap Studioのアプリごとの録音機能との互換性。

アップグレードと同様に、一部の機能は失われ(ミッションコントロール起動パッド、一部のジェスチャなど)、一部のオペレーティングシステムの動作は慣れる必要があります(たとえば、スクロールの方向が逆になります)が、全体としては細かいアップグレード。


2
良い点ですが、ほとんどのユーザーにとって、自動終了はSnow Leopardにロールバックする価値はありません。これは一部のユーザーにとってはささいなイライラであり、私はそれらの1人ではありません。
-MrDaniel

1
確かにそれは極端な解決策ですが、これはSnow LeopardがLionより優れているいくつかの方法の1つです。それらの累積的な影響により、誰かがSnow Leopardを欲するようになります。そうは言っても、Lionの他の機能(特にiCloudに関連する機能)が欠点に耐える価値があるので、私はそれと一緒に暮らすことを学んでいます。
ダニエル

質問はライオンについてです。
グラハムペリン

1
@GrahamPerrinは私の答えでした。私のポイントは、これはLionが破った多くのことの1つであり、1つの解決策はLionを動かさないことかもしれません。
ダニエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.