네트워크 사용자 로그인시 스크립트 실행


1

컴퓨터 실습실이 10.8을 실행 중입니다. 네트워크 사용자가 로그인 할 때 스크립트를 실행하고 싶습니다. 내가 선택할 수있는 한 다음과 같습니다.

발사 된 요원-이 목적이 아닙니다. launchd.plist 매뉴얼 페이지에 "시작된 에이전트가 시작한 에이전트는 시작 초기화의 일부로 다음을 수행하지 않아야합니다. 작업 디렉토리를 설정하십시오." 그것이 기본적으로 내 스크립트가하는 일입니다.

로그인 항목-다수의 게시물은 10.7에서 작동했지만 10.8에서는 작동하지 않음을 나타냅니다.

로그인 후크-작동하지만 developer.apple.com의 "로그인 및 로그 아웃 사용자 정의"에 "로그인 및 로그 아웃 스크립트 사용을 피해야하는 여러 가지 이유가 있습니다. 로그인 및 로그 아웃 스크립트는 더 이상 사용되지 않습니다."

내일 작동하지 않는 것을 사용하고 싶지 않습니다. "올바른 방법"이 있으면이 작업을 수행하고 싶습니다. 조언 부탁드립니다. 감사.


스크립트는 일반적으로 실행 된 에이전트이므로 수행해야 할 작업입니다. 작업 디렉토리를 설정하는 경우 응용 프로그램에서이를 사용하는 응용 프로그램 수와이를 무시하는 사람 수는 어떻게 설정되어 있는지 알 수 없습니다. (이것은 다른 앱이 그것을 볼 수 없기 때문에 launchd가 cwd를 설정하지 않아야하는 이유입니다)
Mark

답변:


0

스크립트의 작업 디렉토리 설정

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


권리. 불행히도 시작되는 스크립트는 사용자의 데스크탑에 별명을 만듭니다. 그것이 작업 디렉토리를 설정했기 때문에 그것이 작동하지 않는 이유라고 생각합니다. 매뉴얼 페이지를 읽고 plist를 작성하고 Apple 포럼의 전문가와 문제를 해결했습니다. 작동하지 않았다.
슬림 볼륨

@SlimVolume 시작된 작업 티켓과 스크립트를 질문의 일부로 추가 할 수 있습니다.
Graham Miln

1
감사! 이전에는 launchd를 사용하여 이전에 없었던 폴더를 만들려고했습니다. 이번에는 이것을 "올바른 방법"으로 시작하자 거의 비슷한 작업을 처음부터 시작했습니다. 나는 그것을 작동시켰다.
슬림 볼륨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.