6

I want to start mysql with the command argument "--log=log_file_name"

What is the proper way to do that when starting it with /etc/init.d?

Would it be like this? /etc/init.d/mysql start --log=log_file_name

JamesHoux
  • 257
  • 1
  • 3
  • 8

2 Answers2

7

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.

Cloudmeteor
  • 449
  • 2
  • 7
1

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.

fredden
  • 393
  • 1
  • 10
mdpc
  • 11,856
  • 28
  • 53
  • 67