컴퓨터 실습실이 10.8을 실행 중입니다. 네트워크 사용자가 로그인 할 때 스크립트를 실행하고 싶습니다. 내가 선택할 수있는 한 다음과 같습니다.
발사 된 요원-이 목적이 아닙니다. launchd.plist 매뉴얼 페이지에 “시작된 에이전트가 시작한 에이전트는 시작 초기화의 일부로 다음을 수행하지 않아야합니다. 작업 디렉토리를 설정하십시오.” 그것이 기본적으로 내 스크립트가하는 일입니다.
로그인 항목-다수의 게시물은 10.7에서 작동했지만 10.8에서는 작동하지 않음을 나타냅니다.
로그인 후크-작동하지만 developer.apple.com의 “로그인 및 로그 아웃 사용자 정의”에 “로그인 및 로그 아웃 스크립트 사용을 피해야하는 여러 가지 이유가 있습니다. 로그인 및 로그 아웃 스크립트는 더 이상 사용되지 않습니다.”
내일 작동하지 않는 것을 사용하고 싶지 않습니다. “올바른 방법”이 있으면이 작업을 수행하고 싶습니다. 조언 부탁드립니다. 감사.
답변
스크립트의 작업 디렉토리 설정
/Library/LaunchAgents
폴더에 배치 된 시작된 에이전트 작업을 사용해야 합니다.
아래 인용 한 조언은 실행 파일이나 스크립트를 시작하는 데 있습니다. launchd
작업 디렉토리를 관리하도록 해야 합니다.
데몬 또는 에이전트 시작 launchd에 의해는 자신의 시작 초기화의 일부로 다음을 수행해서는 안된다 :
- 사용자 ID 또는 그룹 ID를 설정하십시오.
- 작업 디렉토리를 설정하십시오.
- chroot (2)
- setsid (2)
- “stray”파일 디스크립터를 닫으십시오.
- stdio (3)를 / dev / null로 변경하십시오.
- setrusage (2)를 사용하여 자원 제한을 설정하십시오.
- setpriority (2)로 설정 우선 순위.
- SIGTERM 신호를 무시하십시오.
실행 된 작업 티켓은 원하는 작업 디렉토리를 요청합니다. 사용 WorkingDirectory
디렉토리를 설정하는 키를 누릅니다. 실행 파일 또는 스크립트가 시작되기 전에 디렉토리가 자동으로 설정됩니다.
실행 된 작업 티켓에서 사용 가능한 키에 대한 자세한 설명은 launchd.plist (5) 매뉴얼 페이지 에서 볼 수 있습니다 .
사용자의 작업 디렉토리 설정
알려진 현재 작업을 직접 제공하려면 수정 된 ~ / .bashrc 또는 기타 셸 로그인 스크립트를 제공하십시오.