Debianでサービスを無効にするための推奨される方法


10

Debianでサービスを無効にする「推奨される方法」はありますか?(無効=サービスはインストールされていますが、マシンの起動時に自動的に開始されません。)

私はできることを知っていますupdate-rc.d -f service remove(これにより基本的にのリンクが削除されますrcX.d)が、これを行うと、サービスのシーケンス番号(SXXserviceXXはシーケンス番号です)が失われ、サービスを再度有効にするときに困難になります。また、リンクのrcX.d先頭を変更しないようにS(またはリンクを別の場所に移動できるように)リンクの名前を変更できることも知っていますが、これを行うには「Debian承認のベストプラクティス」の方法があるかどうか疑問に思いました。

回答:


12

update-rc.dのmanページをご覧ください。「Initスクリプトリンクのインストール」というセクションの3番目の段落には、…と書かれています。

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

最後の2つの文はあなたの質問に答えるはずです。:-)


例えば:sudo update-rc.d postgresql disable
リュイス・

5

「sysv-rc-conf」ユーティリティを試して、生活を少し楽にすることができます。他のシステムのchkconfigツールの詳細です。

プロンプトでタイプするだけです:

sudo apt-get install sysv-rc-conf

乾杯!


素晴らしいツール、ありがとう。また、サービスを正しく無効化している(つまり、シンボリックリンクの名前をK ...に変更する)こともわかります。
ハインツィ

2

実際、sysv-rc-confupdate-rc.dのmanページでも推奨されるアプローチです。

このプログラムは、パッケージメンテナスクリプトで使用するように設計されているため、このようなスクリプトに必要な機能は非常に限られていることに注意してください。システム管理者は、ランレベルの管理にupdate-rc.dを使用することはお勧めしません。リンクを直接編集するか、代わりにsysv-rc-confやbumなどのランレベルエディターを使用する必要があります。


0

私が理解しているように、「Debianベストプラクティス」はパッケージアンインストールすることです。パッケージを使用していない場合は、パッケージをインストールしないでください。これが、Debianパッケージがすべてインストール時に開始するように構成されている理由です。

(通常、実行せずにインストールした方が便利なパッケージは、/etc/default/<packagename>構成ファイルに開始を無効にする設定があります。)


2
勘違いしている。「起動時に自動的に開始しない」とは、「パッケージをまったく使用しない」という意味ではありません。単純な例の1つとして、ブート時にデーモンとして起動するのではなく、必要に応じてxinetdによってSSHサーバーを起動したい場合があります。
quack quixote、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.