web-dev-qa-db-ja.com

ubuntu-init.dスクリプトへの変更が無視される理由

Ubuntu Server 14.04を使用しています。 /etc/init.d/gearman-job-serverを変更して、次のように入力した後:

# Sudo service gearman-job-server restart

私が行った変更は無視されます。しかし、それから私はタイプします:

# /etc/init.d/gearman-job-server restart

すべてが機能します。それらのスクリプトは現在Ubuntu 14.04にありますか?

4
happy_marmoset

Ubuntu 15.10でリッスンアドレスを変更しようとして同様の問題が発生した後、従来のinitスクリプトが無視され、systemd設定が127.0.0.1でのみリッスンするようにハードコーディングされていることがわかりました。

解決策は、systemdの設定を変更して再読み込みし、サービスを再起動することです。

構成を変更する

構成は直接またはオーバーライドファイルを介して変更できます。

直接変更による

Systemdサービス設定は/lib/systemd/system/gearman-job-server.serviceにあります。このファイルを編集し、ExecStart行を変更して、必要なパラメーターを含めます。

上書きファイル

ファイル/etc/systemd/system/gearman-job-server.service.d/gearman-job-server.confを作成します。

次の構成をファイルに入れて、ExecStartコマンドをオーバーライドします。

[Service]
ExecStart=
ExecStart=/usr/sbin/gearmand --pid-file=/run/gearman/server.pid --log-file=/var/log/gearman-job-server/gearman.log

元のコマンドラインを削除するには、空のExecStart=行が必要です。これがないと、システムはオリジナルとカスタムの両方を実行しようとします。

設定を再読み込みします

Systemdがサービス構成をリロードするように、次のコマンドを実行します

/bin/systemctl daemon-reload

サービスを再起動します

service gearman-job-server restart
4
kicken

Sudo serviceを使用する場合、Ubuntu 12.04とUbuntu 14.04は最初に/etc/init(upstart)、次に/etc/init.dのinitスクリプトを検索するため、最初にこのスクリプトが見つかります。

/etc/init/gearman-job-server.conf

その後

/etc/init.d/gearman-job-server

ところで、説明されているgearman-job-server.confにもバグがあります here

2
happy_marmoset