source

Mac OS X 로그인 시 스크립트 실행

ittop 2023. 4. 17. 22:30
반응형

Mac OS X 로그인 시 스크립트 실행

컴퓨터에 로그인 할 때마다 자동으로 실행되는 셸(.sh) 프로그램을 구할 수 있는 사람이 있는지 궁금합니다.Mac OS X 10.6.7을 실행하고 있습니다.

컴퓨터에 로그온할 때 실행할 파일 "Example.sh"이 있습니다.이미 로그인하고 있을 때는 문제없이 실행할 수 있지만 자동으로 실행할 수 있도록 하고 싶습니다.

다음의 순서에 따릅니다.

  • 개시하다Automator.app

  • 선택한다.Application

  • 찰칵찰칵Show library툴바에서(숨긴 경우)

  • 더하다Run shell script(에서)Actions/Utilities)

  • 스크립트를 복사하여 창에 붙여넣기

  • 시험해 보다

  • 어딘가에 저장한다(예를 들어 만들 수 있다)Applications당신의 집에 있는 폴더, 당신은 그것을 얻을 것입니다.your_name.app)

  • 에 가다System Preferences->Users & Groups->Login items(또는System Preferences->Accounts->Login items/ MacOS 버전에 따라 다름)

  • 이 앱 추가

  • 테스트 및 완료;)

편집:

저는 최근에 이 답변으로 "좋은 답변" 배지를 받았습니다. 이 솔루션은 심플하고 동작하고 있습니다만, 로그인시에 프로그램이나 셸 스크립트를 실행하는 가장 깨끗한 방법은 인터랙티브를 필요로 하지 않는 @trisweb의 답변 기재되어 있습니다.

자동화 솔루션을 사용하면 다음과 같은 작업을 수행할 수 있습니다.오토메이터 스크린샷 로그인 응용 프로그램

스크립트 실행 또는 앱 종료 요청, 비밀번호 요청, 로그인 시 다른 자동화 워크플로우 실행, 로그인 시 조건부로 애플리케이션 실행 등...

tl;dr: OSX의 네이티브 프로세스 런처 및 매니저를 사용합니다.launchd.

그렇게 하려면launchctl데몬스크립트의 모든 측면을 완전히 제어할 수 있습니다.한 번 실행할 수도 있고 데몬으로 계속 사용할 수도 있습니다.대부분의 경우, 이것은 바람직한 방법입니다.

  1. 작성하다.plist여기 또는 아래 Apple Dev 문서의 설명에 따라 파일을 제출하십시오.
  2. 배치 위치~/Library/LaunchAgents
  3. 로그인(또는 를 통해 수동으로 실행)launchctl load [filename.plist])

에 대한 자세한 내용을 참조해 주세요.launchd, 위키피디아 기사는 꽤 훌륭하고 시스템과 다른 오래된 시스템에 비해 그 장점을 설명하고 있습니다.


다음은 로그인 시 스크립트를 실행하기 위한 특정 plist 파일입니다.

OSX El Capitan 이후 2017/09/25 업데이트(Josue Messias Jr. 크레딧):

<?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.user.loginscript</string>
   <key>ProgramArguments</key>
   <array><string>/path/to/executable/script.sh</string></array>
   <key>RunAtLoad</key>
   <true/>
</dict>
</plist>

「 「 」를 교환해 .<string> 키를 누른 후(이가능해야 .Program 키 、 [ Program ] 、 [ Program ] 、 [ Program ] 、 [ Program ] 、 [ Program ] after [ Program ]( [ Program ] 、 [ Program ]를 참조할 수 있습니다).chmod a+x /path/to/executable/script.sh을 사용법)

로 저장하다~/Library/LaunchAgents/com.user.loginscript.plist

실행합니다.launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist직접 하려면 실행)합니다.launchctl start com.user.loginscript)

★★/var/log/system.log에러 메세지가 표시됩니다.

중요한 것은 이것이 사용자 고유의 launchd 엔트리이기 때문에 지정된 사용자의 로그인 시 실행됩니다.의 기동 에 )/Library/LaunchDaemons을 사용하다

로그인 시 모든 사용자의 스크립트를 실행하려면 Login Hook이 유일한 옵션이라고 생각합니다.그것이 아마 존재하는 이유일 것입니다.

  1. .login.sh$HOME 。

  2. Editor에 다음 줄의 .do shell script "$HOME/login.sh"

  3. 그런 다음 응용 프로그램으로 저장합니다.

  4. 마지막으로 로그인 항목에 응용 프로그램을 추가합니다.

스크립트 출력을 시각화하는 경우는, 순서 2 를 다음과 같이 스왑 할 수 있습니다.

tell application "Terminal"
  activate
  do script "$HOME/login.sh"
end tell

여러 개의 명령어가 필요한 경우 다음과 같은 명령을 사용할 수 있습니다.

tell application "Terminal"
  activate
  do script "cd $HOME"
  do script "./login.sh" in window 1
end tell

언급URL : https://stackoverflow.com/questions/6442364/running-script-upon-login-in-mac-os-x

반응형