Passing Arguments to a Service started with Init.d
Solution 1:
To make it simple you can create another entry in init.d to start the mysql with that logdir path option. Make a script like /etc/init.d/mysql-log
and put following entries in it:
#!/bin/sh -e
set -e
COMMAND=$1
LOG="--log=/tmp/mysql.log"
case $COMMAND in
start)
/etc/init.d/mysql $COMMAND $LOG
;;
stop)
/etc/init.d/mysql $COMMAND
;;
restart)
/etc/init.d/mysql stop
/etc/init.d/mysql start $LOG
;;
*)
exit 1
esac
Set the log file location in the above script as per your needs and start the mysql with the following command:
/etc/init.d/mysql-log start
This way you can use different scripts for different occasions.
Solution 2:
You cannot pass arguments to services with startup scripting. Reason: there should be ONLY ONE argument being passed.
This argument consists of minimally only TWO choices:
start -- tells the scripting that it is being started from system startup.
stop -- tells the scripting that it is being STOPPED due to shutdown request
Trying to configure a system to pass arguments at boot time will make your system non-standard and the cause of later configuration errors.
Usually this type of adjustment is handled in the init.d scripting by setting up variables using the /etc/sysconfig/servicename
scripting and using the '.' command to basically include them in their operation.
In otherwords, the most common process is to basically configuration files that are read-in or used by the underlying application in an init.d startup scripting. Definitely this is NOT done via adding more arguments to this type of scripting.