web-dev-qa-db-ja.com

Ubuntu12.04:起動時にデーモンプロセスを無効にする方法

私は通常service start/stopまたはinitctl start/stopデーモンプロセスを開始または停止しますが、ここで私が探しているのは、起動時にデーモンプロセスが開始されないようにすることですmysqld

現在行っているのは名前の変更です/etc/init/mysql.conf/etc/init/mysql.conf.bakですが、systemdについて少し読んだ後、それがenable & disable上記のタスクのオプション。

それで、ubuntu 12.04でupstartと似たものはありますか?.

23
RanRag

次のコマンドを実行して、サービスを無効にできます。

Sudo update-rc.d -f <service name> disable

マニュアルページ 抜粋:

Disable [S | 2 | 3 | 4 | 5]オプションを指定して実行すると、update-rc.dは、開始リンクの名前を変更して、シーケンス番号が等しいリンクを停止することにより、スクリプト/etc/init.d/nameの既存のランレベルリンクを変更します。 100から元のシーケンス番号を引いた差に。

26
Mark Cohen

サービスを無効にして起動する正しい方法は、XX.overrideファイルを作成することです。

echo 'manual' > /etc/init/mysqld.override

そうすれば、upstartサービスは自動的に開始されません

20
daisy

@ warl0ckはそれを正しく持っています。この情報はUpstartのドキュメントに非常によく記載されていることを追加したかった: http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting

具体的には:

Upstart 1.3では、オーバーライドファイルと手動スタンザを利用して、より簡単な方法で同じ結果を得ることができます[27]:

# echo "manual" >> /etc/init/myjob.override

これを行うことで同じ効果が得られることに注意してください。

# echo "manual" >> /etc/init/myjob.conf

ただし、オーバーライド機能を使用すると、元のジョブ構成ファイルをそのまま残すことができます。

元の動作に戻すには、オーバーライドファイルを削除するか名前を変更します(または「.conf」ファイルから手動スタンザを削除します)。

7
Mark Glossop

これを支援するための素敵なソフトウェアもあります。そのrcconfと呼ばれます。

使用してダウンロードしてください:

Sudo apt-get install rcconf

そしてそれをコマンドで使用します

rcconf

サービスを無効/有効にするためのニース(コマンドライン)インターフェースを取得します。

5
delh

/etc/rc2.dに移動して名前を変更しますnotを起動時に実行します:(初期、大文字) "S"を "K"に変更します(例:S02mysqlK02mysql)。気が変わったら逆にしてください。 2はランレベルを指していると思います。その場合、2はデフォルトのマルチユーザーランレベルです。おそらく、そこに日常のコンピュータで使用するためのほとんどのものが揃っています。

編集:以下のJames O'Gormanのコメントを読んでください。

1
Emanuel Berg

Upstartでは、サービス構成は/etc/init/内のファイルにあります。たとえば、sshは設定ファイル/etc/init/ssh.confを使用して制御されます

このファイルは、「ジョブ」を開始するためにアップスタートを促す「イベント」を指定します。

サービスが自動的に開始されないようにするには、いくつかの方法のいずれかを使用できます。
a)service.confファイルの名前を.confで終わらないように変更します
b)service.confファイルの「start on」行をコメント化します。

Upstartの新しいバージョン(少なくともv1.3以降)では、service.overrideファイルを使用してオンラインで開始をオーバーライドすることもできるため、次のように使用できます。
# echo manual > /etc/init/service.override

最後に、サービスの構成ファイルの最後にキーワード "manual"を追加することもできます。例:
# echo manual >> /etc/init/service.conf

これは実行中のサービスを「停止」するのではなく、自動的に開始されないようにするだけであることに注意してください。 「手動」起動に設定されている間は、initctlを使用してサービスを制御します。たとえば、SSHデーモンを停止して起動します。
# initctl stop ssh
# initctl start ssh

間違いなく、Upstartの最良のドキュメントは http://upstart.ubuntu.com/cookbook/ にあります。

セクション11.44は、「自動起動からのサービスの無効化についてここで説明します: http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting

0
Johan

まあ、私はステートメントを言う必要があります

echo "manual" >> /etc/init/myjob.override

オーバーライドファイルを追加することを意味するので、少し誤解を招く可能性があります。 14.04でnetwork-managerを使用してこれをテストしましたが、以下は機能しませんでした

vim /etc/init/network-manager.override:
start
manual

しかしこれはうまくいった

vim /etc/init/network-manager.override:
#start
manual

したがって、IMO、initctlは最初のコメント化されていない行を探して実行します。多分私は間違っていますが、それらは私のテスト結果でした。入力は大歓迎です。

0
infoclogged