launchctl 구성에 어떤 문제가 있습니까?


15

로그인시 SickBeard를 자동 실행하려고합니다.

python /Applications/Sick-Beard/Sickbeard.py

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.sickbeard.sickbeard</string>
  <key>ProgramArguments</key>
  <array>
       <string>/usr/bin/python</string>
       <string>/Applications/Sick-Beard/SickBeard.py</string>
       <string>-q</string>
       <string>-d</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

내가 그것을 실행할 때 나 launchctl com.sickbeard.sickbeard.plist에게 메시지를 준다 :

launchctl load com.sickbeard.sickbeard.plist launchctl : 다음에 대한 plist가 리턴되지 않았습니다. com.sickbeard.sickbeard.plist launchctl : com.sickbeard.sickbeard.plist에 대한 plist가 리턴되지 않았습니다.


명령 줄에 "launchctl load com.sickbeard.sickbeard.plist" 를 의미한다고 가정 하십니까? 그렇지 않으면 완전히 다른 오류가 발생합니다 ;-)
binarybob

답변:


37

파이썬 스크립트의 경로와 매개 변수가 유효하다고 가정하고 있습니다. 그렇지 않으면 콘솔에 오류가 표시 될 가능성이 큽니다.

마지막으로 오류를 보았을 때 plist에 불필요한 공백 (예 : 여분의 공백)이있어 구문 오류가 발생하여로드에 실패했기 때문입니다. plutil -lintplist에서 실행 하면 구문이 검사되고 오류가 발생한 행을 직접보고합니다.

plutil -lint com.sickbeard.sickbeard.plist

그래도 도움이되지 않으면 (OSX) 로그인시 SickBeard를 시작하거나 sickbeard 포럼의 OSX 스레드에서 부팅하는 방법 이 plist와 약간 다른 plist를 갖습니다 (Sickbeard /usr/local와 달리 실행 /Applications-사용 권한 일 수 있음). 또한 당신 과 똑같은 문제 를 가진 사람들도


2
도와 주셔서 감사합니다. 복사하여 붙여 넣기하면 숨겨진 추가 문자가 생겼습니다. 나는 전체 XML을 나노로 다시 입력했으며 잘 작동했습니다.
Joao Costa

2
덕분에 대해 알고 결코 plutil -lint전에. 매우 편리합니다!
robmathers 2016 년

방금이 게시물을 찾았지만 콘솔 출력을 확인하면 디버깅에도 도움이됩니다.
Wing Tang Wong

2

어려운 방법을 발견 sudo했으므로 .plist다음과 같이 파일 의 전체 경로를 전달할뿐만 아니라 사용하여 명령을 실행해야 합니다 (귀하의 경우).

sudo launchctl load /Library/LaunchDaemons/com.sickbeard.sickbeard.plist

경로는 다를 수 있지만 파일을 찾아 해당 위치를 찾아서 launchctl명령에 인용 한대로 전달해야합니다 .


2

메시지 nothing found to load는 때때로 구성이 다른 구성에 의해 대체됨을 의미합니다. 를 사용할 때 옵션 "-w"를 사용하여 강제로로드합니다 launchctl load or unload.

plist 파일을 강제로로드 또는 언로드해야하는 경우 plist를 대체하는 구성이 있음을 의미합니다. 이 재정의는 "-w"를 사용할 때 생성되며, 그렇지 않으면 재정의 파일에 재정의가 추가되지 않습니다. 이 경우를 방지하려면 아래 파일을 편집하고 대체를 제거 할 작업 레이블을 검색하고 필요한 행을 삭제하십시오.

pico /var/db/launchd.db/com.apple.launchd/overrides.plist

예를 들어이 줄을 삭제하십시오.

<key>com.mydomain.myjob</key>
<dict>
        <key>Disabled</key>
        <true/>
</dict>

당신은 사용할 수 있습니다 : launchctl load or unload /Library/LaunchDaemons/com.mydomain.myjob.plist"-w"또는 "-F"의 필요없이 메시지를해서는 안nothing found to load


1

-F 플래그를 추가 launchctl하여 .plist 를 강제 로로드 할 수 있습니다. 또한 .plist가 경로 launchctl검색 에 있는지 확인하십시오 . .plist가 다른 곳에 있으면 -D 플래그를 추가하고 도메인을 지정할 수도 있습니다. 맨 페이지에서 :

-D domain
주어진 도메인에서 * .plist로 끝나는 plist (5) 파일을 찾으십시오. 유효한 도메인에는 "시스템", "로컬", "네트워크"및 "모두"가 있습니다. 세션 유형을 제공 할 때 "사용자"라는 추가 도메인을 사용할 수 있습니다. 예를 들어, 세션 유형을 지정하지 않으면 "-D 시스템"은 / System / Library / LaunchDaemons의 특성 목록 파일에서로드됩니다. 세션 유형이 전달되면 / System / Library / LaunchAgents에서로드됩니다.

맨 페이지에 포함 된 모든 정보를 철저히 검토해야합니다. 통화가 제대로 구성되지 않으면 문제가 발생할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.