"open -j" command does not work for all apps
Google Chrome uses different mechanism to display the app, so the standard -j switch does not work as expected in this case. Main process spawns the Google Chrome Helper processes for every tab. If you check the .app bundle, you'll see it resides in /Applications/Google\ Chrome.app/Contents/Versions/XX.X.XXXX.XX/Google\ Chrome\ Helper.app. You can't launch it directly, because main app has to be running. 

I couldn't find the other way around than just creating osascript like this:

open -j /Applications/Google\ Chrome.app &amp;&amp; sleep 1 &amp;&amp; osascript -e 'tell application "System Events" to set visible of application process "Google Chrome" to false'


However this will create 1 sec. delay in your script.