Improper call of "daemon" shell function in rc startup script leads to
"dirname" error
--------------------------------------------------------------------------------------
Key: CORE-5069
URL: http://tracker.firebirdsql.org/browse/CORE-5069
Project: Firebird Core
Issue Type: Bug
Components: Scripts
Affects Versions: 2.5.5
Environment: CentOS 6.7
Reporter: Steve Friedl
Priority: Minor
After installing FirebirdCS-2.5.5.26952-0.amd64.rpm on a CentOS 6.7 system and
switching into SuperClassic mode, starting the service produces a script type
error:
# service firebird start
Starting Firebird server [default] /usr/bin/dirname: extra operand `-daemon'
Try `/usr/bin/dirname --help' for more information.
[ OK ]
This comes from /etc/rc.d/init.d/firebird here:
case "$1" in
start)
echo -n "Starting $FULLNAME "
daemon --user=$FBRunUser "export FIREBIRD LD_LIBRARY_PATH; $GUARDIAN
-pidfile $pidfile -daemon -forever"
The issue is that the daemon() shell function is trying to extract the actual
executable name (which is $GUARDIAN) from the second parameter, but it's
getting confused by the string, attempting to run dirname on te wrong thing.
It's very confused.
This causes - among other things - the pid file not to be created properly, and
the "service" infrastructure doesn't know if it's running or not.
The fix is to add a
--check="$GUARDIAN"
parameter to the daemon line (I put it first), which provides the executable
name so the shell function doesn't have to guess.
daemon --check="$GUARDIAN" --user=$FBRunUser "export FIREBIRD
LD_LIBRARY_PATH; $GUARDIAN -pidfile $pidfile -daemon -forever"
This /etc/rc.d/init.d/firebird script is pulled from the install bundle in
/opt/firebird/misc/firebird.init.d.mandrake, and this is why I'm not submitting
this as a patch.
The fix I mention works great on CentOS 6.7, but I have no idea if it works or
breaks on Mandrake, or on other versions of Linux; this requires a bit more
installation study that I can't do - I've never used and don't have Mandrake.
Looking in the svn logs, it appears that this behavior was changed to use the
"daemon" shell function here:
r43324 | alexpeshkoff | 2009-07-21 04:02:30 -0700 (Tue, 21 Jul 2009) | 2
lines
Updated startup script from Philippe Makowski
This is a suspiciously long time ago for this issue to appear to be unreported
(I couldn't find it in the tracker), so I'm not sure what introduced the issue.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel