Linux(Debian)でプログラムをサービスに設定してデフォルトでオフにする方法は?

Linux(Debian)でプログラムをサービスに設定してデフォルトでオフにする方法は?

Alfrescoをインストールするときにサービスとしてインストールするかどうかを選択できます。

サービスとしてインストールすると起動時にサービスが開始されますが、トムキャットを使用するため、バックグラウンドプログラムとして残っているには重すぎる。また、ダウンタイムがApacheよりはるかに長くなります。

だからこれをサービスとして維持したいのですが、基本的にはoffに設定されているのでEnterだけですsudo service alfresco start

サービスではないものに設定し、bashスクリプトを1つまたは2つ書くこともできますが、Linuxで「サービス」がどのように機能するかについて詳しく学びたいと思います。 Apacheには問題ありませんが、サービスパラメータが保存されている場所とそれを変更する方法を知っておくとよいでしょう。

答え1

「一般的な」アプローチは次のとおりです。

$ sudo update-rc.d -f servicename remove

削除サービス名すべてのランレベルで自動的に起動します。

デフォルト設定を再度有効にするには:

$ sudo update-rc.d servicename defaults

答え2

使用できるsysv-rc-conf管理するランレベル(どのサービスをどの実行レベルで開始するかを設定します)。

これはとても簡単です。

  1. インストールしてください:sudo apt-get install sysv-rc-conf
  2. 走る:sudo sysv-rc-conf
  3. 目的の実行レベルで開始するようにサービスを表示します(2、3、4、5は通常の開始、0は終了、6は再起動)。キーボードの矢印を使用してナビゲートし、spaceキーストロークを使用してチェックボックスを切り替えます。

答え3

Debian はデフォルトで SysVinit に付属しています。ランレベルがシンボリックリンクを介して制御されるサービスが実行されます/etc/initN.d(N = 0〜6、ここで2-5は通常のランレベル、Sは起動時に開始されたサービスを示します)。バラよりドミトリー・バシリヤノフそしてゲティフディックこれらのシンボリックリンクを設定する方法への答えです。

私は使用するのが好きfile-rcパッケージはシンボリックリンクを単純なテキストファイルに置き換えます/etc/runlevel.conf

多数のサービスを終了したい場合、またはインストールまたはアップグレード中にサービスが開始されないようにしたい場合(Debianの既知の問題)、ローカルサービス起動ポリシーを定義できます。というスクリプトを書いてください。/usr/sbin/policy-rc.d達成初期化スクリプト戦略あなたの選択。詳細については、/usr/share/doc/sysv-rc/README.policy-rc.dシステムを参照してください。ポリシー全体を実行するには少し作業が必要ですが、簡単な場合には機能します。たとえば、exit 101スクリプトに含まれる内容だけが含まれている場合、初期化スクリプトは実行されません(これはchrootにインストールされているシステムに便利です)。

関連情報