web-dev-qa-db-ja.com

Init.dで始まるサービスに引数を渡す

コマンド引数「--log = log_file_name」でmysqlを起動したい

/etc/init.dで起動するときにそれを行う適切な方法は何ですか?

こんな感じでしょうか? /etc/init.d/mysql start --log = log_file_name

5
JamesHoux

簡単にするために、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 

このようにして、さまざまな場面でさまざまなスクリプトを使用できます。

6
Cloudmeteor

起動スクリプトでサービスに引数を渡すことはできません。理由:渡される引数は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起動スクリプトで、基盤となるアプリケーションによって読み込まれたり使用されたりする構成ファイルです。確かに、これは、このタイプのスクリプトに引数を追加することでは行われません。

1
mdpc