私は通常service start/stop
またはinitctl start/stop
デーモンプロセスを開始または停止しますが、ここで私が探しているのは、起動時にデーモンプロセスが開始されないようにすることですmysqld
。
現在行っているのは名前の変更です/etc/init/mysql.conf
〜/etc/init/mysql.conf.bak
ですが、systemd
について少し読んだ後、それがenable & disable
上記のタスクのオプション。
それで、ubuntu 12.04でupstart
と似たものはありますか?.
次のコマンドを実行して、サービスを無効にできます。
Sudo update-rc.d -f <service name> disable
マニュアルページ 抜粋:
Disable [S | 2 | 3 | 4 | 5]オプションを指定して実行すると、update-rc.dは、開始リンクの名前を変更して、シーケンス番号が等しいリンクを停止することにより、スクリプト/etc/init.d/nameの既存のランレベルリンクを変更します。 100から元のシーケンス番号を引いた差に。
サービスを無効にして起動する正しい方法は、XX.overrideファイルを作成することです。
echo 'manual' > /etc/init/mysqld.override
そうすれば、upstartサービスは自動的に開始されません
@ 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」ファイルから手動スタンザを削除します)。
これを支援するための素敵なソフトウェアもあります。そのrcconfと呼ばれます。
使用してダウンロードしてください:
Sudo apt-get install rcconf
そしてそれをコマンドで使用します
rcconf
サービスを無効/有効にするためのニース(コマンドライン)インターフェースを取得します。
/etc/rc2.d
に移動して名前を変更しますnotを起動時に実行します:(初期、大文字) "S"を "K"に変更します(例:S02mysql
をK02mysql
)。気が変わったら逆にしてください。 2はランレベルを指していると思います。その場合、2はデフォルトのマルチユーザーランレベルです。おそらく、そこに日常のコンピュータで使用するためのほとんどのものが揃っています。
編集:以下のJames O'Gormanのコメントを読んでください。
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
まあ、私はステートメントを言う必要があります
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は最初のコメント化されていない行を探して実行します。多分私は間違っていますが、それらは私のテスト結果でした。入力は大歓迎です。