응용 프로그램의 OS X 자동 종료를 비활성화하는 방법이 있습니까?


11

OS X Lion에게 특정 응용 프로그램에 대해 자동 종료를 원하지 않는 자동 종료를 비활성화하도록 지시하는 방법이 있습니까?

FYI Lion은 당신이 아직 몰랐다면 떨림입니다. 특정 응용 프로그램에 대해 원하지 않는다면 어떻게 될까요?

Lion은 리소스가 필요하다고 판단하고 사용하지 않는 것으로 판단되면 실행중인 응용 프로그램을 등 뒤로 종료합니다. 응용 프로그램이 "사용 중"인지 여부를 결정하는 휴리스틱은 매우 보수적입니다. 응용 프로그램은 활성 응용 프로그램이 아니어야하고 최소화 된 창이 보이지 않아야합니다. 물론 자동 종료를 명시 적으로 지원해야합니다.

예를 들어 TextEdit 창이 열려 있지 않고 다른 응용 프로그램으로 전환 할 때 TextEdit이 자동으로 종료되지 않게하려면

한 번 봐 복용 후 자동 종료에 대한 안내 섹션을 프로그래밍 맥 앱을 나는 텍스트 편집기의의 Info.plist 파일 없음의 값으로 NSSupportsAutomaticTermination 키를 추가하려고 할 것입니다 생각. (작동하지 않음 : TextEdit을 열 때 충돌합니다.)

주목할 점은 파일에 NSSupportsAutomaticTermination 키가 포함되어 있지 않기 때문에 (애플이 자동 종료를 활성화하기 위해 NSProcessInfo 를 사용 하고 있음을 의미 함 ) NSProcessInfo가 plist 파일의 내용을 재정의하므로 키를 추가해도 아무런 영향을 미치지 않습니다. NSSupportsAutomaticTermination 키 및 No 값을 포함하여 수정 된 Info.plist로 TextEdit에 자체 서명하여이 기능이 작동하지 않음을 확인했습니다.

한 가지 부작용은 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과 개발자에게 목소리를 높여서 더 나아질 수 있습니다.
MrDaniel

답변:


14

당신의 소원은 나의 터미널 명령입니다 ;-)

defaults write -g NSDisableAutomaticTermination -bool yes

Automatic Termination (자동 종료)은 실제로 응용 프로그램을 종료하는 것이 아니라 숨기 므로 제대로 종료 된 후에 적용해야합니다.


2
훌륭하고 좋은 사용자 찾기 22760. 위에서 언급 한대로 시도해 보았습니다. 감사합니다. TextEdit.app의 테스트 케이스는 더 이상 기본값을 실행 한 후 TextEdit을 열고 종료 한 후에 더 이상 자동으로 종료되지 않습니다. TextEdit을 다시 열면 더 이상 창이 열리지 않고 백그라운드에서 실행되지 않고 더 이상 자동 종료되지 않습니다.
MrDaniel

흥미 롭군 이 명령을 시도한 후에는 실제로 작동합니다. 그러나 실행 취소를 시도하는 것이 더 어려운 것으로 판명되었습니다. 기본값은 쓰기 -g NSDisableAutomaticTermination -bool no 또는 false이거나 키를 삭제해도 적용되지 않으며 응용 프로그램이 자동으로 종료되지 않습니다
DrFloyd5

이 기적 명령은 Mavericks에서 저에게 효과적입니다! 세션으로 돌아 오거나 새 세션을 열 때 적용됩니다.
Nicolas Barbulesco

추가 된 지침에 따라 앱을 시작하고 수동으로 종료 한 다음 다시 시작하여 효과를 제대로 볼 수있게 해주셔서 감사합니다.
jtheletter

1

하드웨어가 지원하는 경우이를 해결하는 확실한 방법이 있습니다. Mac OS X 10.7 (Lion)에서 Mac OS X 10.6 (Snow Leopard)으로 업그레이드 할 수 있습니다.

Lion을 실행할 모든 하드웨어가이 개선 된 운영 체제를 지원할 수있는 것은 아니지만 (슬프게도, 2011 년 중반 MacBook Air는 그렇지 않습니다) 비 자동 종료 Rosetta (Intel 프로세서가 PPC 용으로 컴파일 된 소프트웨어를 실행할 수있게 함) 와 같은 기능이 포함되어 있습니다. 우수한 WireTap Studio의 앱별 기록 기능과 호환됩니다.

업그레이드와 마찬가지로 일부 기능 (예 : Mission Control , Launch Pad , 일부 제스처) 이 손실 되고 일부 운영 체제 쿼크에 익숙해 지기도합니다 (예 : 스크롤 방향이 반대로 됨). 훌륭한 업그레이드.


2
좋은 지적이지만 대부분의 사용자에게 자동 종료는 Snow Leopard로 롤백 할 가치가 없으며 일부 사용자에게는 약간의 성가심입니다.
MrDaniel

1
확실히 극단적 인 해결책이지만, 이것은 Snow Leopard가 Lion보다 우월한 몇 가지 방법 중 하나입니다. 그것들의 누적 효과는 누군가가 스노우 레오파드를 원하게 할 수 있습니다. 즉, Lion의 다른 기능 (특히 iCloud와 관련)이 단점을 극복 할 가치가 있기 때문에 함께 사는 법을 배우고 있습니다.
다니엘

문제는 라이온에 관한 것입니다.
Graham Perrin

1
@GrahamPerrin도 대답했습니다. 제 요점은 이것이 라이온이 깬 많은 것들 중 하나이며, 한 가지 해결책은 라이온을 운영하지 않는 것입니다.
다니엘
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.