Skip navigation.
 
mlRe: Relaunching an application
FROM : John Stiles
DATE : Mon Mar 03 18:38:36 2008

Mattias Arrelid wrote:
> On 3 mar 2008, at 18.14, Nir Soffer wrote:
>

>> On Mar 3, 2008, at 18:24, Mattias Arrelid wrote:
>>

>>> I have an application that I need to restart.

>>
>> Why do you want to do that?

>
> A scenario could be that the entire contents of the .app bundle has
> been replaced with new stuff (e.g. the case with Sparkle).
>

>>> An easy way to do this could be:
>>>
>>> [[NSWorkspace sharedWorkspace] launchApplication:executablePath];
>>> [NSApp terminate:self];
>>>
>>> The problem is that the above solution results in confusion in the
>>> system dock; sometimes the original application does manage to quit
>>> before the new instance, other times not. If it does NOT manage to
>>> quit before the new one is launched, the dock ends up with two icons
>>> for my application; one that indicates that the application is
>>> launched, another one that's indicates that it's not launched. This
>>> is NOT good.
>>>
>>> I've seen other programs in need of a restart (e.g. the Sparkle
>>> framework) using a separate helper application that simply checks
>>> whether the original process has quit properly before re-launching
>>> it. This sure does work, but it isn't a pretty solution.

>>
>> Seems pretty to me. You want use a separate process to make this work
>> reliably.

>
> It works, but I'd say it was prettier if there was a framework call to
> accomplish this.


I bet that if you took some time, you could find a way to do this via
forking and using low-level BSD calls (non-Window Server) instead of
launching a full-fledged separate app.

OTOH, it would probably be easiest to just use the helper app :) Keep in
mind that this "app" could probably be as simple as a few lines of
AppleScript.

Related mailsAuthorDate
mlRelaunching an application Mattias Arrelid Mar 3, 17:24
mlRe: Relaunching an application Nir Soffer Mar 3, 18:14
mlRe: Relaunching an application Mattias Arrelid Mar 3, 18:18
mlRe: Relaunching an application Jean-Daniel Dupas Mar 3, 18:29
mlRe: Relaunching an application John Stiles Mar 3, 18:38
mlRe: Relaunching an application Steven Degutis Mar 3, 20:43
mlRe: Relaunching an application Michael Ash Mar 3, 23:22
mlRe: Relaunching an application Steven Degutis Mar 4, 02:48
mlRe: Relaunching an application Joe Ranieri Mar 4, 03:27
mlRe: Relaunching an application Mattias Arrelid Mar 4, 12:10
mlRe: Relaunching an application Michael Ash Mar 4, 17:11