Wednesday, February 18, 2015

Yosemite, SuperServer, and StartupItems


There seems to be a small problem with Firebird on Yosemite (OSX 10.10), it looks like Apple have finally deprecated StartupItems, and currently SuperServer uses this to start itself on reboot.

Apple state:
"Startup Items
Deprecation Note: Startup items are a deprecated technology. Launching of daemons through this process may be removed or eliminated in a future release of OS X."

Which is obviously what has happened.

This is followed by

"Unless your software requires compatibility with OS X v10.3 or earlier, use the launchd facility instead."

Which is currently what Classic does.


If you install Firebird after upgrading to Yosemite, you can start the server manually by simply using

/Library/StartupItems/Firebird/Firebird start

However if Firebird was already installed, it looks as if the StartupItems folder is removed during the upgrade, but you should be able to start the server using the following....

/Library/Frameworks/Firebird.framework/Resources/bin/fbguard -daemon -forever

But if you want Firebird SuperServer to start automatically on reboot you could use the following org.firebird.gds.plist file in /Library/LaunchDaemons



and the command

launchctl load org.firebird.gds.plist

should now start Firebird immediately and also on reboot.

Update 2nd July 2015

I got an email from David Nock suggesting that the following plist would do a better job at managing SuperServer on Yosemite (10.10). Some brief tests suggest that he is right. I will be committing the following for 2.5.5, but I am documenting this here in case anybody wants to use this.



5 comments:

Jon said...

Thank you for this helpful post. Are there plans to change the FB installer for OS X such that this type of LaunchDaemon is created automatically?

You noted that the StartupItems approach will still work if you install Firebird on a machine that has already been upgraded to Yosemite. But Apple has noted that StartupItems are deprecated (http://goo.gl/i2xsS6). So will FB be updated soon to use the recommend LaunchDaemon approach?

Finally, using your LaunchDaemon as is, I always ended up getting two instances of fbguard running. I changed the "KeepAlive" tag to "RunAtLoad" and that took care of it.

Thanks!

Paul Beach said...

Jon,
The changes have already been committed for inclusion in 2.5.4. From Yosemite 2.5 SuperServer will use the LaunchDaemon.
RunAtLoad looks like a better solution, I will make the change. Thanks.

Paul

John Moore said...

Great Post and timely...

BTW any thoughts on this... I was poking around the logs for another issues and saw a lot (I mean a LOT) of entries like this..

Oct 19 22:52:31 jbmoores-MacBook-Pro-3 com.apple.xpc.launchd[1] (org.firebird.gds): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.

Is this just the system checking on the app (that it is running) or is something else amiss..

Thanks for any thoughts you might have on this..

John..

Paul Beach said...

John,
Please try a reinstall using the new installer in 2.5.4 and see if the problem goes away. http://www.ibphoenix.com/download/firebird/25

John Moore said...

Paul,

Thanks, that seems to have done the trick.. I'll monitor it and make sure over the next few days..

John..