我想使用命令参数“--log = log_file_name”启动mysql
当使用 /etc/init.d 启动时,正确的方法是什么?
是不是这样?/etc/init.d/mysql start --log=log_file_name
答案1
为了简单起见,您可以在 init.d 中创建另一个条目,以使用该 logdir 路径选项启动 mysql。创建一个脚本,/etc/init.d/mysql-log
并将以下条目放入其中:
#!/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
根据需要在上述脚本中设置日志文件位置,然后使用以下命令启动 mysql:
/etc/init.d/mysql-log start
这样,您就可以针对不同的场合使用不同的脚本。
答案2
您无法使用启动脚本向服务传递参数。原因:只能传递一个参数。
这个论点至少只包含两个选择:
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
尝试配置系统以在启动时传递参数将使您的系统变得不标准,并导致以后的配置错误。
通常,这种类型的调整是在 init.d 脚本中处理的,通过使用 /etc/sysconfig/ 脚本设置变量servicename
并使用 '.' 命令将它们基本上包含在其操作中。
换句话说,最常见的过程基本上是将底层应用程序读取或使用的配置文件写入 init.d 启动脚本中。这绝对不是通过向此类脚本添加更多参数来实现的。