コマンド引数「--log = log_file_name」でmysqlを起動したい
/etc/init.dで起動するときにそれを行う適切な方法は何ですか?
こんな感じでしょうか? /etc/init.d/mysql start --log = log_file_name
簡単にするために、init.dに別のエントリを作成して、mysqlをそのlogdirパスオプションで起動することができます。 /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
このようにして、さまざまな場面でさまざまなスクリプトを使用できます。
起動スクリプトでサービスに引数を渡すことはできません。理由:渡される引数は1つだけです。
この引数は、最低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
ブート時に引数を渡すようにシステムを構成しようとすると、システムが非標準になり、後の構成エラーの原因になります。
通常、このタイプの調整は、/ etc/sysconfig/servicename
スクリプトを使用して変数を設定し、「。」を使用することにより、init.dスクリプトで処理されます。基本的にそれらを操作に含めるコマンド。
つまり、最も一般的なプロセスは、基本的に、init.d起動スクリプトで、基盤となるアプリケーションによって読み込まれたり使用されたりする構成ファイルです。確かに、これは、このタイプのスクリプトに引数を追加することでは行われません。