serviceとsystemctlの違いは何ですか?


33

たぶん、これは些細な質問ですが、私には完全に明確ではありません。サーバーの1つで、次のようにservice開始されたいくつかのバックグラウンドプロセスが実行されていsystemctlます。

$ service nginx start
$ systemctl start gunicorn

2つのコマンドの違いは何ですか?バックグラウンドサービスを処理するための好ましい方法はどれですか?優先コマンドの構成方法は?



これの苦痛な部分は、サービスが「機能しない」と言う人もいます。そうでない場合、なぜ「find / grep / locate」などのように引数の順序を変更するのですか... Linuxリリース内で一貫性がありません:(
killjoy

回答:


37

serviceは、異なるUNIXおよびLinuxでサービスを開始および停止するために使用される「高レベル」コマンドです。「下位」サービスマネージャーに応じて、service異なるバイナリにリダイレクトします。

たとえば、CentOS 7ではにリダイレクトしsystemctl、CentOS 6では相対/etc/init.dスクリプトを直接呼び出します。一方、古いUbuntuリリースでは、リダイレクトされますupstart

service基本的なサービス管理には適切ですが、直接呼び出すとsystemctlより優れた制御オプションが得られます。


9

systemctlは、基本的にのより強力なバージョンですservice

ではserviceあなただけのサービスに関連するコマンドを行うことができます(つまりstatusreloadrestart)を持つのに対しsystemctl、次のようなより高度なコマンドを使用することができます。

systemctl is-failed name.service # check if service failed to load

またはマスキングサービス:

systemctl mask name.service

このページには、Ask Ubuntuから多くの良い情報があります


1

systemctl中のデーモン/サービスを制御するための主なユーティリティですsystemd
一方、serviceコマンドは、伝統的なユーティリティですSysVinit世界。

systemdにの特徴の一つは、はsysvinit /レガシーコマンドと互換性があることです
ので、あなたが持っている場合はsystemctl、コマンドを、
service foo startラッパーになりますsystemctl start foo

の同じ話chkconfig

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.