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
데몬스크립트의 모든 측면을 완전히 제어할 수 있습니다.한 번 실행할 수도 있고 데몬으로 계속 사용할 수도 있습니다.대부분의 경우, 이것은 바람직한 방법입니다.
- 작성하다
.plist
여기 또는 아래 Apple Dev 문서의 설명에 따라 파일을 제출하십시오. - 배치 위치
~/Library/LaunchAgents
- 로그인(또는 를 통해 수동으로 실행)
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이 유일한 옵션이라고 생각합니다.그것이 아마 존재하는 이유일 것입니다.
.
login.sh
$HOME 。Editor에 다음 줄의 .
do shell script "$HOME/login.sh"
그런 다음 응용 프로그램으로 저장합니다.
마지막으로 로그인 항목에 응용 프로그램을 추가합니다.
스크립트 출력을 시각화하는 경우는, 순서 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
'source' 카테고리의 다른 글
C#일반목록T타입취득방법 (0) | 2023.04.17 |
---|---|
stdout과 stderr을 모두 파일로 리디렉션하는 방법 (0) | 2023.04.17 |
행렬을 3열 표로 변환합니다('역방향 피벗', '비회전', '평탄', '정규화'). (0) | 2023.04.17 |
VSO를 선택하고 다음을 선택합니다. (0) | 2023.04.17 |
여러 Excel 파일을 python pander로 Import하여 하나의 데이터 프레임에 연결 (0) | 2023.04.17 |