Hi Dave

On Fri, Mar 23, 2018 at 11:06 AM, Akshay Joshi <
akshay.jo...@enterprisedb.com> wrote:

>
>
> On Thu, Mar 22, 2018 at 10:24 PM, Dave Page <dp...@pgadmin.org> wrote:
>
>> Hi
>>
>> On Thu, Mar 22, 2018 at 1:13 PM, Dave Page <dp...@pgadmin.org> wrote:
>>
>>>
>>>>>>> 2) Starting a second instance of the app bundle on Mac doesn't
>>>>>>> always open a new pgAdmin window as it should. It works fine in the
>>>>>>> debugger, or if you start the app with a command like:
>>>>>>> "/Applications/pgAdmin\ 4.app/Contents/MacOS/pgAdmin4". It doesn't
>>>>>>> work if you double-click the appbundle or use a command like "open
>>>>>>> /Applications/pgAdmin\ 4.app"
>>>>>>>
>>>>>>
>>>>>>   Still working on this, not found any solution yet.
>>>>>>
>>>>>
>>>>          Not able to figure out the solution yet. I have tried to debug
>>>> the code, but every time it will create a new instance(tray icon). Do I
>>>> need to look into the code or something related to app bundle may be some
>>>> settings in info.plist or any other pointer?
>>>>
>>>
>>> Have a look at the code around line 85 an onwards of pgAdmin4.cpp. It
>>> creates the shared memory interlock (and log/address files) based on the
>>> current username and a hash of the executable name/path. My suspicion is
>>> that the path hash (which is calculated from argv[0] on line 72) is for
>>> some reason getting a different value each time when launched via the
>>> Finder or "open", thus the interlock is failing.
>>>
>>
>> So I took a look at this, and it seems the code is just fine. What is
>> happening is that macOS only allows a single instance of an app to run at
>> once. Whilst that is what we want of course, macOS is causing the new
>> instance to exit before it has a change to open a new pgAdmin window. Using
>> "open -n ..." or calling the embedded executable directly resolves that
>> issue.
>>
>> So, there's another challenge to figure out... :-(
>>
>
>     OK. Will try to figure that out.
>

        After googled I have tried following solution:

   1. Create a shell script "launch.sh" and kept it in  "/Applications/pgAdmin\
   4.app/Contents/MacOS" folder. That shell script will contain the command
   "open -n /Applications/pgAdmin\ 4.app/Contents/MacOS/pgAdmin4". Change
   the "CFBundleExecutable" parameter of Info.plist from "pgAdmin4" to
   "launch.sh".  It didn't work, shall script didn't launch.
   2. Create one apple script with command like "do shell execute
"/Applications/pgAdmin\
   4.app", compile it and save it as Application. It create the app bundle,
   copy contents of pgAdmin4 app to this newly created application. But the
   problem is it opens and having icon in the dock and no response on double
   click (second time).

       Will continue to figure out some other solutions tomorrow.

>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
>
>
> --
> *Akshay Joshi*
>
> *Sr. Software Architect *
>
>
>
> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246*
>



-- 
*Akshay Joshi*

*Sr. Software Architect *



*Phone: +91 20-3058-9517Mobile: +91 976-788-8246*

Reply via email to