Debianでの起動時にデーモンが起動しないようにする方法


16

起動時に無効にするデーモンがいくつかあります。例として、以下を使用します。

 sudo update-rc.d -f postgresql remove

そのコマンドが正しいかどうかもわかりませんし、どこから入手したのかも覚えていません。

とにかく、アップグレードするたびにpostgresql、設定は失われます(つまり、デーモンは再起動時に起動します)。


1
SysVinitを使用したDebianでは、が好きfile-rcです。シンボリックリンクを管理する代わりに、ランレベル設定でテキストファイルを管理します。
ジル 'SO-悪であるのをやめる'

回答:


22

update-rc.d最初はパッケージアップグレードスクリプトで使用されていました。removeパッケージのアンインストール時に呼び出され、すべてのリンクを削除するかdefaults、パッケージのインストール時に呼び出されるか、debconfに応じて使用され、システム管理者に役立ちます。クリーンアップは、実際にはサービスを無効にするのに役立ちません。manページから:enabledisableremove

一般的なシステム管理エラーは、これによりサービスが「無効」になる、つまりサービスの開始が妨げられると考えてリンクを削除することです。ただし、すべてのリンクが削除されている場合、次にパッケージがアップグレードされると、パッケージのpostinstスクリプトがupdate-rc.dを再度実行し、これにより工場出荷時のデフォルトの場所にリンクが再インストールされます。サービスを無効にする正しい方法は、デフォルトで開始されるすべてのランレベルで停止するようにサービスを構成することです。System V initシステムでは、これはサービスのシンボリックリンクの名前をSからKに変更することを意味します。

sudo update-rc.d postgresql disablerc.dシンボリックリンクを保持しますが、K(killed、stopped)プレフィックスを使用するため、必要な処理を実行します。で元に戻しenableます。一部のサービスは/etc/defaults/$serviceファイルからの無効化をサポートしていますが、残念ながら例外があります。サービスを無効にする他の方法は、/etc/init.d/$serviceファイルをchmod -xするか、ファイルexit 0の先頭に挿入することです。


6

最適な解決策を明確にするために、東部の答えに似ています。

  1. オプションupdate-rc.dと一緒に使用しないでくださいremove
  2. 代わりに、オプションupdate-rc.dとともに使用してくださいdisable

例: update-rc.d postgresql disable


さらに、他のより具体的なサービスを検索(および無効化)することもできます。 systemctl

例: systemctl disable pppd-dns.service


REMOVEオプションを使用しないことを勧める+1
PYK

3

東部は絶対に正しいですが、完全を期すために、スマートな概要を提供するツールがありますsysv-rc-conf。copy&patseの場合:

apt-get install sysv-rc-conf

実行sysv-rc-confすると、どのランレベルでどのスクリプトが実行されるかがわかります。でサービスを有効/無効にしspace、で終了できますq


2
私も好きですrcconf、それは標準リポジトリにあります。ただし、これらはいずれもUbuntuのデフォルトであるupstartで動作しません。まだたくさんのものがレガシー初期化を使用していますが。
JMベッカー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.