OSX/launchctl: 매일 아침 전경에 있는 새로운 Chrome 인스턴스에서 특정 웹사이트를 어떻게 열 수 있나요?

OSX/launchctl: 매일 아침 전경에 있는 새로운 Chrome 인스턴스에서 특정 웹사이트를 어떻게 열 수 있나요?

요구사항:

  1. 특정 웹사이트
  2. 밤새 노트북을 닫았음에도 불구하고 매일 아침(launchctl이 이를 처리할 수 있음)
  3. 전경 - 공간/데스크톱이 여러 개 있는 경우에도 주의를 기울여야 합니다.
  4. 새로운 크롬 인스턴스(필수는 아니지만 바람직함)

open http://superuser.comChrome이 아직 열려 있지 않은 데스크톱/공간에서 시도하면 3. 및 4.의 경우 실패하는 것을 볼 수 있습니다. 무슨 일이 발생하면 다음의 기존 Chrome 인스턴스 내에서 탭이 열립니다.또 다른공간/데스크톱이 백그라운드에서 조용히 보입니다.

답변1

내가 생각 해낸 것은 다음과 같습니다. 생각보다 간단했어요.

쉘 스크립트 daily_goals.sh를 작성하십시오.

#!/bin/bash

# this is needed to launch Chrome as a new window. Since it's a new window, it will open in the foreground in current space/desktop. 
open -n -a Google\ Chrome 

# this sleeps for 1 second. It's necessary because otherwise the website, called below, will open in existing Chrome window, which may be located in another desktop. I think sleeping lets the next `open` call find the newly opened Chrome window, and replace the new tab with the provided website. 
sleep 1 

# the website I provided. 
open http://joesgoals.com 

만들다 /Library/LaunchDaemons/daily_goals.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>daily_goals</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/user/Work/daily_goals.sh</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>07</integer>
        <key>Minute</key>
        <integer>00</integer>
    </dict>
</dict>
</plist>

launchctl에 추가:

launchctl load -w /Library/LaunchDaemons/daily_goals.plist

요약하면 새로 열린 Chrome 인스턴스에서 매일 아침 7시에 joesgoals.com이 시작됩니다. 노트북이 오전 7시에 절전 모드인 경우 노트북이 절전 모드에서 다시 시작되면 JoesGoals가 열려야 합니다. 다른 데스크톱/공간(Chrome 유무에 관계없이)에서 osx를 다시 시작하는 이상한 현상이 나타나면 나중에 업데이트하겠습니다. 문제가 되지 않기를 바랍니다.

관련 정보