MacOS Xでアプリケーションを複数インスタンス立ち上げる

MacOS Xのアプリって基本的に/Applications/Hoge.appを何度も開いても関連付けられたファイルを何個開いても1インスタンスしか実行されない。

それでいい場合がほとんどだとは思うんだけれど、Preview.appでPDFの資料眺めててふと複数ウインドウで違うページ表示して見比べたいと思った時に、それを実現する方法が無かったり。

で、いじってて気づいたんだけど、こうやると何インスタンスでも起動できるぞ。

$ /Applications/Preview.app/Contents/MacOS/Preview&
$ /Applications/Preview.app/Contents/MacOS/Preview&
$ /Applications/Preview.app/Contents/MacOS/Preview&

複数インスタンスの起動を抑制してるのはFinderレベルなのかな。
シェルから実行プログラム直接叩いても抑制されないみたい。

そういえば昔のOSXではAquaアプリをシェルで起動すると標準出力にバイナリが吐かれるだけでUIが表示されないという挙動だったけど、最近のOSXではちゃんと問題なく動作するのね。ついでにNSLog経由っぽいログ出力も標準出力に出てきたり。

※「/Applications/Preview.appが何でディレクトリになってんの!なにこれ!」っていうところから分かってない人はこのブログ見てる人には居ないと思うんだけど、もしLinuxや*BSDだけ使ってたら絶対に出会うことのない独特のものなので、念の為に解説リンクを貼っておこう:
役立つ Mac OS X 用語集: バンドルとは?
[Mac OS X] バンドル構造を持つモジュールのファイル構成 - Life with IT