네트워크 사용자 로그인시 스크립트 실행 시작 초기화의 일부로 다음을 수행하지 않아야합니다. 작업

컴퓨터 실습실이 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 또는 기타 셸 로그인 스크립트를 제공하십시오.