web-dev-qa-db-ja.com

Systemctlとserviceコマンドの違い

私は常にこの方法で私のApacheサーバーを実行します。

Sudo service Apache2 start

しかし、多くのガイドで次のようなコマンドを見ました。

Sudo systemctl start Apache2

誰かがすぐにこれらのコマンドの違いを書いて、日常業務でどのコマンドを使用するべきかについてアドバイスをいただけますか?

15
Roman Romanov

serviceは/etc/init.d内のファイルを操作し、古いinitシステムと組み合わせて使用​​されていました。 systemctlは/ lib/systemd内のファイルを操作します。/lib/systemdにサービスのファイルがある場合は、最初にそれを使用し、ない場合は/etc/init.dのファイルにフォールバックします。また、ubuntu-14.04のようなOSを使用している場合は、サービスコマンドのみを使用できます。

したがって、systemctlが使用可能な場合は、それを使用する方が良いでしょう

5
shahin

この答え から借りると:

serviceは、startrestart,stopおよびstatusサービスで使用される「高レベル」コマンドですnixesおよびLinuxes。 「下位レベル」のサービスマネージャーに応じて、サービスは異なるバイナリにリダイレクトされます。

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

serviceは基本的なサービス管理に適していますが、直接systemctlを呼び出すと、より多くの制御オプションが提供されます。

そしてsystemctlこのディレクトリからサービスファイルを実行します:/lib/systemd

1
Benyamin Jafari