私はDebianまたはUbuntuをサーバーとして設定するのが好きで、設定する前に多くのアプリケーションをインストールする必要があります。必要に応じて、後で使用できるようにアプリをインストールすることもあります。
これらのアプリケーションを自動的に有効にして実行することは望ましくありません。これにより、特に設定が変更されず、他のアプリケーションと競合する場合に問題が発生する可能性があります。
たとえば、次のソフトウェアをインストールしましたapt install nginx apache2 lighttpd
。
再起動すると、Nginxはポート80でリッスンしていたため、誤って設定され安全でないため無効にする必要がありました。
無効にして再起動しましたが、誰がポートを占有しているのかがわかります。
無効にすると、lighttpd
Apache2が置き換えられます。
これは言うまでもなく、私がインストールしたアプリケーションと戦うような気がします。停止する方法はありますか?インストール時にサービスを有効にして起動する動作を無効にする方法はありますか?
編集する
自動起動を防ぐソリューションが見つかりました。
echo exit 101 > /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
自動アクティベーションを防ぐソリューションが見つかりました。
https://unix.stackexchange.com/a/723679/547917
apt --no-enable --no-start
しかし、これは面白いことです。一種のスイッチを使用するよりも単純なものはありません。
答え1
systemdプリセットを設定して、新しくインストールされたサービス(少なくともsystemdユニットを使用して構成されたほとんどのサービス)をデフォルトで無効にすることができます。
sudo mkdir -p /etc/systemd/system-preset
echo 'disable *' | sudo tee /etc/systemd/system-preset/99-default-disable.preset
バラよりman systemd.preset
もっと学ぶ。
答え2
独自のパッケージを作成し、サービスが自動的に起動したくない場合は、プリセットファイルをインストールできます。複数の場所があります。フォルダは既にデフォルトのシステムファイルとともに存在するため、パッケージの次の場所を選択しました。
/etc/systemd/system-preset/
拡張子で50-
始まり、パッケージ名にちなんでファイル名を指定しました。.preset
50-<package-name>.preset
ファイルに次の行を追加しました。
disable <service-name>.service
一般的<service-name>
には同じです<package-name>
が、必ずしもそうではありません。
これで、debian/<package-name>.install
ファイルにもう1行があります。
/usr/share/<package-name>/50-<package-name>.preset /etc/systemd/system-preset/
直接インストールできないため、私のCMakeLists.txt
ファイルの1つのディレクトリ.preset
にファイルをインストールしました。/usr/share/<package-name>/
/etc/...
project(service-config)
INSTALL(
FILES
50-<package-name>.preset
DESTINATION
share/<package-name>
)
これで、サービスの状態が次のように表示されます。
...; vendor preset: disabled)
つまり、無効なサービスから始めてください。私の場合、サービスが機能するためにキーをインストールする必要があるので、デフォルトでは無効にしたいと思います。