저는 맥에서 BTT를 사용하는데요, 요즘 실행이 되어 있어도 먹통이 경우가 종종 있었습니다.
그래서 매번 재실행을 했는데, 잠자기 이후에 자동으로 재실행 되면 좋을 것 같아서 책지피티에 물어 봤더니 알려주더라고요.
제대로된 실행도 가능했습니다.
그래서 여기에 올려두면 도움이 될것 같아서 올립니다.
맥에서는 “잠자기 해제(wake)” 이벤트를 감지해서 원하는 앱을 자동으로 종료 후 재실행하도록 만들 수 있습니다.
가장 안정적인 방법은 sleepwatcher + shell script + launchd 조합입니다.
아래 순서대로 하면 됩니다.
1. SleepWatcher 설치
터미널 실행 후 입력:
brew install sleepwatcher
설치 확인:
sleepwatcher --version
2. Wake 스크립트 만들기
홈 폴더에 스크립트 생성:
nano ~/.wakeup_apps.sh
예시 내용 입력:
#!/bin/zsh # 앱 종료 osascript -e 'quit app "앱이름"' sleep 3 # 앱 다시 실행 open -a "앱이름"예를 들어 크롬이면:#!/bin/zsh osascript -e 'quit app "Google Chrome"' sleep 3 open -a "Google Chrome"
저장:
Ctrl + O- 엔터
Ctrl + X
3. 실행 권한 부여
chmod +x ~/.wakeup_apps.sh
4. Wake 이벤트 연결
SleepWatcher 설정:
echo "~/.wakeup_apps.sh" > ~/.wakeup
5. SleepWatcher 자동 실행 등록
brew services start sleepwatcher
확인:
brew services list
started 상태면 정상입니다.
6. 테스트 방법
맥을 잠자기 → 다시 깨우기.
자동으로:
- 앱 종료
- 3초 대기
- 앱 재실행
됩니다.
여러 앱 동시에 재실행하는 방법
예시:
#!/bin/zsh
osascript -e 'quit app "Google Chrome"'
osascript -e 'quit app "Discord"'
osascript -e 'quit app "Slack"'
sleep 5
open -a "Google Chrome"
open -a "Discord"
open -a "Slack"
강제 종료까지 하고 싶다면
앱이 잘 안 꺼질 경우:
pkill "Google Chrome"
또는:
killall "Google Chrome"
사용 가능.
예시:
#!/bin/zsh
killall "Google Chrome"
sleep 5
open -a "Google Chrome"
가장 실전적인 추천 방식
크롬 / 디스코드 / 슬랙 / Docker 같은 앱은:
killall "앱명"
sleep 5
open -a "앱명"
이 방식이 제일 안정적입니다.
현재 등록 상태 확인
cat ~/.wakeup
삭제 방법
자동 실행 중지:
brew services stop sleepwatcher
설정 삭제:
rm ~/.wakeup
rm ~/.wakeup_apps.sh
실행하려는 앱이 BTT임으로 아래의 사항을 참고해 주세요.
그럼 BetterTouchTool 공식 사이트 의 앱 이름만 정확히 넣으면 됩니다.
맥 내부 앱 이름은 "BetterTouchTool" 입니다.
가장 안정적인 설정 예시는 아래입니다.
1. wake 스크립트 수정
터미널:
nano ~/.wakeup_apps.sh
내용:
#!/bin/zsh
# BetterTouchTool 강제 종료
killall "BetterTouchTool"
# 완전히 종료될 때까지 대기
sleep 5
# 다시 실행
open -a "BetterTouchTool"
저장:
- Ctrl + O
- 엔터
- Ctrl + X
2. 실행 권한 확인
chmod +x ~/.wakeup_apps.sh
3. wake 이벤트 연결 확인
cat ~/.wakeup
결과가 아래처럼 나오면 정상:
~/.wakeup_apps.sh
없다면:
echo "~/.wakeup_apps.sh" > ~/.wakeup
4. SleepWatcher 실행 상태 확인
brew services list
여기서:
sleepwatcher started
면 정상.
아니면 실행:
brew services start sleepwatcher
5. 직접 테스트
잠자기 없이 바로 테스트하려면:
~/.wakeup_apps.sh
실행 시:
- BetterTouchTool 종료
- 5초 대기
- 자동 재실행
되면 성공입니다.
실제로 많이 쓰는 개선 버전
BetterTouchTool이 늦게 뜨는 경우:
#!/bin/zsh
killall "BetterTouchTool"
# 프로세스 완전 종료 대기
while pgrep "BetterTouchTool" > /dev/null
do
sleep 1
done
sleep 2
open -a "BetterTouchTool"
이 방식이 더 안정적입니다.