回答:
ユーザーがログインしたときに何かを実行したい場合、最も簡単な方法はGUIを使用することです。あなたはできる
System Prefs > Accounts > Login Items
、スクリーン、およびによってそこに項目を追加します
+
シンボルをクリック.app
ペインにドラッグアンドドロップしますOptions
から、選択しますOpen at Login
以外の何かを起動する場合.app
、または次のように起動をより詳細に制御する場合:
あなたが使用したいの技術的な解決策ですlaunchd
。
構成launchd
ファイルをセットアップする最も簡単な方法は、ツールを使用して支援することです。執筆時点で最も人気のある方法は、Lingon(SourceForgeから入手可能な古い無料バージョンがあります)、またはPList Websiteツールです。
LingonまたはPList Webサイトを使用せず、システムで利用可能な生のツールのみを使用する場合は、独自のツールlaunchd
plist
を手書きで作成できます。
これは、システムの起動後に(ユーザーのログインに関係なく)SomeAppを継続的に実行するlaunchdスクリプトです。/ System / Library / LaunchAgents /にあり、SomeApp.restart.plistと呼ばれます。ユーザーログインに基づいて実行される場合は、〜/ Library / LaunchAgents /に保存できます。
<?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>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>SomeApp.restart</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/SomeApp.app/Contents/MacOS/SomeApp</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>5</integer>
<key>Minute</key>
<integer>10</integer>
</dict>
</dict>
</plist>
一度ロードする
launchctl load ~/Library/LaunchAgents/SomeApp.restart.plist
RunAtLoad
オプションは、最初の時間にlaunchctlがこれを実行するアプリケーションを起動します。KeepAlive
オプションは、クラッシュした場合にアプリケーションを再起動します。StartCalendarInterval
一定の時間でそれを実行します。おそらくこれは前の2つと相互に排他的ですが、何ができるかを示すために含まれていますlaunchd
Lingonで実験したりするためにmanページを読むことによって見つけることができる多くの追加オプションがありlaunchctl
、launchd.plist
、plist
、launchd.conf
、など
launchctl load -w ...
、変更を永続的にするために使用することもできます。私の更新フィードバックIに基づいてOSXパワーユーザーコンフィギュレータスクリプトを
リンゴンはまだ動作します。先週それを使用して、「スケジュールされたタスク」を作成しました。ダウンロードした後、自動アップデータを使用して最新バージョンを取得する必要がありましたが、正常に動作します。
システムの起動時にのみ実行する必要がある場合は、システム環境設定の「アカウント」環境設定ペインの「ログイン項目」タブを使用します。
スクリプトの場合は、AppleScript Editorを使用してアプリケーションとして保存します。AppleScriptスクリプトでない場合でも、AppleScriptを使用して次のようにスクリプトを実行できます。
do shell script "your script here"
Loginhooksを忘れないでください。
これらはルートとして実行されますが、次のようなものを使用して$ HOME / .loginhookスクリプトを実行できるようにする必要があります。
#!/bin/sh
home=`eval echo ~$user`
if [ -x "$home/.loginhook" ]; then
logger -t $0 "executing .loginhook of user $user"
su - $user -c "$home/.loginhook"
fi
次に、必要なコマンドを〜/ .loginhookに追加します
また、「launchd」は「Macの方法」ですが、crontabは依然として完全に実行可能なオプションであり、XML起動ファイルよりもはるかに簡単に編集できます。
個人的には、Lingonに 5ドルを喜んで支払いました。
/path/to/script
ありsudo defaults write com.apple.loginwindow LoginHook /path/to/script
ますか?そして、ホームディレクトリでスクリプトを実行することのポイントは、各ユーザーがカスタム(またはno)を持つことができるということ~/.loginhook
ですか?
別のフォーラムのおかげでわかったように、指定した時間にアプリを実行することはiCalで簡単に実行できます!
知っておくべきことの1つは、iCloud上で複数のMacがコンテンツを共有している場合、このイベントはこれらのアプリでも実行されることです。これを1台のMacでのみ実行するには、「On My Mac」カレンダーでイベントを作成する必要があります。これは次のように実行できます...
私は自分でこれを見つけたばかりで、両方のヒントに喜んで驚いたので、ここでそれらを共有すると思いました。
私はここでこれらの親切な人々から情報を得ました...だからあなたの人々に感謝します!...
http://osxdaily.com/2013/04/15/launch-file-app-scheduled-date-mac-os-x/