どのLinuxディストリビューションがどの(デフォルト)初期化システムに付属し、どのツールがサービスの開始/停止に使用されるかについての概要はありますか?
サービスを開始/停止/クエリする展開に依存しない方法はありますか?
/etc/init.d/xyz start
system-v init システムにのみ適用されます。service xyz start
すべてのディストリビューションでは使用できません(この機能を持たないディストリビューションとは何ですか?)- 利用可能なコマンドに基づいて大文字と小文字を切り替えることが唯一の信頼できる方法のようです。
背景:サービスを再起動または照会する必要があるさまざまなLinuxディストリビューション用のインストーラを作成する必要があります。このツールを呼び出すことをお勧めしますが、service
どのディストリビューションがこの機能をサポートしているかわかりません。
答え1
このサービスをインストールする場合は、サポートするプラットフォームの初期化スクリプト/構成を正しく作成する必要があるため、展開ごとのサービス管理を理解する必要があります。
システム-
systemctl start xyz.service
Fedora 15+、RHEL7、Arch、Debian 8+、Ubuntu 15+、openSUSE 12.3+突然現れる-
service xyz start
Ubuntu、Fedora 9+、RHEL6システムV-
/etc/init.d/xyz start
RHEL5、Debian、SUSEオープンRC-
/etc/init.d/xyz start
Gentoo、Alpine(Net/FreeBSD対応)シングルモード光ファイバ
svcadm enable svc:/prefix/xyz
-Solaris、Opensolaris(illumos、smartosなど)ベースrc-
/etc/rc.d/xyz start
BSD放射- オペレーティング
launchctl start xyz
システム
システムV/etc/rc.d/xyz
ほとんどの新しいinitシステムは引き続きスクリプト(Linux標準)をサポートしているので、これが出発点です。
システムLinuxが向かう場所
多くのプラットフォームで動作するユーティリティはわかりませんが、ほとんどの構成管理ソフトウェアはクロスプラットフォームのサービス管理を実行できます。残念ながら、これは構成管理ソフトウェア(または少なくとも基本モジュールとランタイムRuby / Python)もインストールする必要があることを意味します。構成ツールを使用してすべての操作を実行できるため、自分のコンピュータでインストールを管理する場合に便利です。ソフトウェアを誰にでも配布しようとすると良いことではありません。
次の構成管理例は、ローカルの基本サービス・マネージャーと対話し、xyz
まだ実行されていない場合はそれを開始します。もう知る必要はありません。
ㅏシェフ レシピ一つを管理できるservice
リソース
service "xyz" do
action :start
end
service { "xyz":
ensure => "running",
}
- service: name=xyz state=started