GoogleChromeを特定のユーザーでシェルスクリプトから起動しようとした話
だいぶぶりです。
就活大失敗して落ち込んでるなう(古)のMet4licですぅ。
今回はちょっと個人的にシェルスクリプトからGoogleのChromeを起動したかったのでその時のメモみたいなもんです。
読みやすさは重視しませんので悪しからず。
何をしたいのか
特定のユーザーで、シェルスクリプト経由で特定のWebページを開きたい
私仕事用のアカウントと個人用のアカウントでChromeのユーザーを分けてまして、で、ふと「だいたいいつも起動すると同じページ起動するし、いちいちChrome開いてクリックしてってめんどくさいな。。。」と思ったわけです。
んで、シェルスクリプトでも書いて自動化しようかしら、と思いました。
結論
Chromeが完全に終了している(Quitされている)状態で
open "[起動したいApplicationへのパス]" [url] --args --profile-directory="[ユーザーデータ名]"
これで起動できます。
注意しなきゃいけないのは、すでにChromeが立ち上がっていると、このコマンドで開いても、現在アクティブなユーザーで開かれてしまうということです。
なので、シェルスクリプトで複数のユーザーを同時に起動するようなことはできないみたいです。
まずやったこと
まずはシェルスクリプト何それ美味しいの状態なので、とにかく調べました。
で、どうやら
open -a "[起動したいApplicationへのパス]" [url]
で、特定のブラウザを立ち上げて、指定したurlを開けるらしいので、これを使っていこうと思ったわけですが、問題発生。
ユーザーが自分が開きたいユーザーで開いてくれない
そう、自分が今立ち上げてる(個人の)ユーザーで立ち上げてしまうのですよ。。どうしたものか。
しかしそこはさすがにアプリケーションだし、どっかから設定ファイルを読んでいるにちがいないと思い、いろいろ漁ると、やはりユーザーデータを指定して開くことができるらしい。
どこにあるんだろうな〜と思って探していたら見つけました。
私現在はMacを使っているので、Macでの話になってしまいますが、Macで何もいじってないなら/Users/[UserName]/Library/Application Support/Google/Chromeというところにどうやら色々入っているようです。
ただ、この中身、すごいごちゃごちゃしていて ls コマンドで見ても、どれがユーザーデータなのかいまいち分かりづらかったです。
んで、色々調べて行くと、どうやら一番最初にChromeにログインしたユーザー(もしくはデフォルトに設定しているユーザー)は >Defaultというディレクトリが該当のユーザーデータのようで、そのほかにユーザーがいる人は他にもディレクトリがあると思います。僕はもう一方のデータを使いたかったので、そちらのデータを見つけました。