Uygulamaların OS X otomatik sonlandırmasını devre dışı bırakmanın bir yolu var mı?


11

OS X Lion'a, otomatik sonlandırmak istemediğiniz belirli bir uygulama için otomatik sonlandırmayı devre dışı bırakmasını söylemenin bir yolu var mı?

FYI Lion, daha önce bilmiyorsanız, ya da belirli bir Başvuru için olmasını istemiyorsanız bir meraklısıdır.

Lion, kaynaklara ihtiyaç duyduğuna karar verirse ve bunları kullanıyor gibi görünmüyorsa, çalışan uygulamalarınızı arkadan bırakacaktır. Bir uygulamanın “kullanımda” olup olmadığını belirleme konusundaki buluşsal yöntem çok muhafazakârdır: etkin uygulama olmamalı, görünür, küçültülmemiş pencereleri olmamalıdır - ve elbette Otomatik Sonlandırmayı açıkça desteklemelidir.

Örneğin, açık bir TextEdit penceresi olmadığında TextEdit'in otomatik olarak çıkmasını istemediğimi ve başka bir Uygulamaya geçmediğimi varsayalım.

Bir göz aldıktan sonra otomatik TERMİNASYONUNDA Kılavuzu bölümüne Programlama Mac App ben TextEdit Info.plist dosyaya No değeriyle NSSupportsAutomaticTermination anahtarını eklemeyi deneyin düşündüm. (Çalışmadı: TextEdit açıkken kilitleniyor.)

Dikkat edilmesi gereken, dosyada NSSupportsAutomaticTermination anahtarı (Apple'ın otomatik sonlandırmayı etkinleştirmek için NSProcessInfo kullandığı anlamına gelir ) içermediğinden, NSProcessInfo plist dosyasında bulunanı geçersiz kıldığından, anahtar eklemenin muhtemelen hiçbir etkisi olmayacaktır. (NSSupportsAutomaticTermination anahtarı ve No değeri dahil olmak üzere değiştirilmiş bir Info.plist ile TextEdit'i kendi kendine imzalayarak bunun çalışmadığını doğruladı).

Belirtilen bir yan etki, Info.plist dosyasındaki herhangi bir şeyin değiştirilmesinin TextEdit'in açarken çökmesine neden olmasıdır. Nedeni, kilitlenme günlüğünden "kod imzası geçersiz" olarak belirtilir; bu, TextEdit uygulamasının ve tüm içeriğinin kod imzalı olduğu anlamına gelir. Çözüm, Kod İmzalama görevindecodesign belirtildiği gibi , komutu ve kendinden imzalı bir kök sertifikayı kullanarak uygulamayı kendiliğinden imzalamaktır .

Şimdiye kadar denedikten sonra, TextEdit hala Otomatik Sonlandırmaya uyuyor.


1
Yani ... uygulamayı kendiniz imzalarsanız, çalışır mı?
jtbandes

1
Hayır. Program, Info.plist'e eklediğim şeye bakılmaksızın, otomatik olarak imzalandıktan sonra bile otomatik olarak sonlandırılıyor
MrDaniel

1
Apple'ın geliştirici araçlarıyla sağladığı TextEdit için örnek kaynağı indirmeyi ve otomatik sonlandırma için kaydeden NSProcessInfo öğelerini düzenlemeyi (veya kaldırmayı) denediniz mi?
Cajunluke

Hayır bunu denemedim, bu durumda çalışması gerekir. Ancak bu soru TextEdit'in ötesindedir. Bu, geliştirici kaynak kodu düzeyi müdahalesi ile bu sorunu çözebilir miyiz. Otomatik Sonlandırmayı destekleyen uygulamalar için kaynak koduna her zaman erişemeyeceğimiz için.
MrDaniel

1
"Apple böyle çalışır" sadece sahte. Bu yeni bir özelliktir, iyi tanıtılmamıştır. Apples Docs'dan, işletim sisteminin bir programı otomatik olarak sonlandırması için neyin gerekli olduğu bile net değildir. Ve Apple bu reklamı yapamıyor ya da son kullanıcılar için Lion özellikleri sayfasında bahsetmiyor. Yeni Apple'ın denediği bir şey olduğunu düşünüyorum. Son kullanıcı bundan hoşlanmıyorsa Apple ve Geliştiriciler'i daha iyi hale getirebilmeleri için seslendirmelidir.
MrDaniel

Yanıtlar:


14

Senin dileğin benim Terminal komutum ;-)

defaults write -g NSDisableAutomaticTermination -bool yes

Otomatik Sonlandırma, uygulamalardan gerçekten çıkmadığından, onları gizlediğinden , bunun etkili olması için düzgün bir şekilde kapatılmış olmaları gerektiğini unutmayın.


2
Mükemmel, iyi bulmak user22760. Yukarıda belirtildiği gibi denedim ve işe yarıyor, teşekkürler. TextEdit.app test durumu, varsayılanları çalıştırdıktan sonra TextEdit'i açıp çıktıktan sonra artık otomatik olarak sona ermiyor. TextEdit yeniden açıldığında, artık hiçbir pencere açık değilken ve arka planda çalışırken otomatik olarak sonlandırılmaz.
MrDaniel

İlginç. Bu komutu denedikten sonra gerçekten işe yarıyor. Ancak, geri almaya çalışmanın daha zor olduğu kanıtlanmıştır. varsayılanlar write -g NSDisableAutomaticTermination -bool no veya false veya anahtarın silinmesinin hiçbir etkisi yoktur ve uygulamalar Otomatik Olarak Sonlandırılmaz
DrFloyd5

Bu mucize komuta benim için Mavericks'te çalışıyor! Oturuma geri döndüğünüzde veya yeni bir oturum açtığınızda etkili olur.
Nicolas Barbulesco

Eklenen talimatın uygulamayı başlatması ve manuel olarak çıkması ve ardından efekti düzgün bir şekilde görmek için yeniden başlatması için çok teşekkürler!
jtheletter

1

Donanımınız destekliyorsa, bunu düzeltmenin kesin bir yolu vardır. Mac OS X 10.7'den (Lion) Mac OS X 10.6'ya (Snow Leopard) yükseltebilirsiniz.

Lion'u çalıştıracak tüm donanımlar bu gelişmiş işletim sistemini desteklemese de (ne yazık ki 2011 ortası MacBook Air'im desteklemiyor), otomatik sonlandırma olmayan Rosetta (Intel işlemcilerin PPC için derlenmiş yazılımı çalıştırmasını sağlayan ) gibi özellikler içeriyor mükemmel WireTap Studio'daki uygulama başına kayıt özellikleriyle uyumluluk.

Herhangi bir yükseltmede olduğu gibi, bazı özellikler kaybolur ( Görev Kontrolü , Başlatma Pedi , bazı hareketler gibi) ve bazı işletim sistemi tuhaflıkları alışmak biraz zaman alır (örneğin kaydırma yönü tersine çevrilir), ama sonuçta, ince yükseltme.


2
İyi bir nokta, ama çoğu kullanıcı için Otomatik Sonlandırma Snow Leopard'a geri dönmeye değmez, bazı kullanıcılara sadece küçük bir sıkıntı, ben onlardan biri değilim.
MrDaniel

1
Emin olmak için aşırı bir çözüm, ama bu Snow Leopard'ın Lion'dan daha üstün olmasının birkaç yolundan biridir. Bunların kümülatif etkisi, birini Kar Leoparı istemeye teşvik edebilir. Bununla birlikte, sadece onunla yaşamayı öğreniyorum, çünkü Lion'un diğer özellikleri (özellikle iCloud ile ilgili) dezavantajlara katlanmaya değer.
Daniel

Soru Lion ile ilgili.
Graham Perrin

1
@GrahamPerrin benim cevabım da buydu. Demek istediğim, bu, Lion'un kırdığı birçok şeyden biri ve bir çözüm, Lion'u çalıştırmamak olabilir.
Daniel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.