web-dev-qa-db-ja.com

Linux:(service foo start`(コマンドラインで)にパラメーターを渡す方法?

開始するサービスに引数を渡したいのですが。例えば。サーバーをデバッグモードで起動します。お気に入り、

service jboss-as start debug

またはそのような。しかし、serviceはそれをサポートしていないようです。

何か方法はありますか? (それが重要な場合はRHEL 6の場合。)

注:これは buntu/Linux:起動スクリプト(sysvinit)の起動パラメーターは通常どのように定義されていますか? に似ていますが、同じではありません。

11
Ondra Žižka

RHELには/ etc/sysconfigフォルダーがあります。ここでは、起動パラメータを定義します。起動スクリプトには、次のようなものを含めます。

if [ -f /etc/sysconfig/$prog ] ; then
    . /etc/sysconfig/$prog
fi

例については、既存のサービスを確認してください。

開発の場合は、エクスポートした変数(.bashrcなど)にスタートアップパラメータを入れ、いつでも手動でオーバーライドできます。

[〜#〜]編集[〜#〜]

本当にserviceを使用したい場合は、他にいくつかのオプションがあります。

スクリプトは少なくともstartstopをサポートする必要があります。ただし、debugコマンドを実装することもできます。そして、プログラムを次のように開始します。

service foo debug

別の方法は、スクリプトの2番目の引数を確認し、プログラムを次のように開始することです。

service foo start debug

Initスクリプトを次のように変更します。

case "$1" in
  start)
        if [ "$2" = "debug" ]
        then
                start_debug
        else
                start
        fi
        ;;
10

Ubuntuでは、起動パラメータは通常次の場所にあります。

/etc/default/<service_name>
5
EEAA

上記で提案したように、その存在を確認した後、システム固有のファイルから追加のパラメーターを調達します。

サービスの起動にオプションを追加するのは好きではありません。

0
Amar