ログイン時には登録してあるアプリケーションが自動で一斉に起動します。処理が集中するため、なにかと大変で忙しいらしく、起動が一段落つくまで待たされます。
自動で起動はしておきたいが、ログインして直ぐで無くていい、それより、先に操作したい時があります。また、自動起動だとトラブルが起こり、起動に失敗するが、手作業で起動すると問題無い場合がたまにあります。
ログイン後に時間を置いて、自動でアプリを起動させる方法はないかと探したところ、シェルスクリプトをファイルを作り、そのファイルを「設定」の「ログイン項目」の自動で開くリストに登録し、実現できました。
シェルスクリプト
複数のDropBoxを使う設定をしたときに、自動起動でアプリが上手く起動できないトラブルに遭いました。ひょっとして、起動のタイミングをずらしたら、動くのではないか?と思いトライしました。
起動させるアプリはこれら3つです。
- Dropbox A.app
- Dropbox B.app
- Dropbox C.app
#!/bin/sh cat $0 sleep 7; open -g /Applications/Dropbox\ C.app sleep 3; open -g /Applications/Dropbox\ B.app sleep 3; open -g /Applications/Dropbox\ A.app
cat は動作確認ということで書いています。sleepコマンドで待つように指示しています。この秒数は足し算になります。今回の設定値は「こんなもんだろう」といい加減なものです。うっかりアプリの名前に”スペース”を使ってしまったので、「\ 」でエスケープしています。
このシェルスクリプトをテキストエディタで作り、login.commandと名前をつけて保存します。
実行権限
こちらの記事での手順にて、オーナーの実行権限をファイルパーミッションに設定します。 ここで、シェルスクリプトの動作確認をしてキチンと動作するかを見ておきます。
ログイン項目
ログイン項目にこのシェルスクリプト「login.command」を登録します。「設定」ー「ユーザーとグループ」を開きます。
「ログイン項目」をクリックして、自動起動のリストを開きます。
左下の「+」をクリックして,追加画面を開きます。
保存した「login.command」を選び、追加をクリックします。
リストにシェルスクリプトが追加されました。
再起動
設定が完了しました。再起動します。再起動後に下のターミナル画面が開きます。設定した時間ごとにアプリが起動します。このターミナルが開いたままになるのが、微妙な場合はこちらで書いている通りに設定すれば、動作完了後にターミナル画面が閉じる設定に変えることができます。