web-dev-qa-db-ja.com

systemdがSystemVに取って代わった場合、なぜそれがまだ存在し、誰がショーを実行しているのですか?

私はDebian8 x64を実行していますが、まだ学習しています。 DebianおよびUbuntuシステムで繰り返し遭遇する紛らわしいことの1つは、サービスを実行および管理する2つの方法があるように見えることです。

  • service
  • systemctl

systemd (systemctl)のDebianページと、 systemdは/etc/init.dスクリプトをどのように使用しますか? などの質問を読みました。

私がこれまで理解してきたことから、DebianやUbuntuを含む最近の多くのLinuxディストリビューションは、古いSysV(System Five)から離れ、systemdを採用しています。 。

私の/sbin/init/lib/systemd/systemdへのシンボリックリンクであることがわかります。

質問は:

  • systemdがSysVに取って代わった場合、なぜSysV(service)がまだそこにあるのですか?
  • なぜ両方を一見同じように使用できるのですか?一方でデーモンを起動すると、もう一方はそれを認識します。どうやって?どちらがショーを実行していますか?
  • serviceを使用する本当の理由はありますか、それともsystemctlに固執する必要がありますか?
7
Rowan Freeman

serviceコマンドは、sysvinitからsystemdへの移行を支援する「互換性」ツールです。これは、現在のinitシステムを処理しようとし、必要に応じてsysvinit、upstart、またはsystemd呼び出しを呼び出すスマートなプログラムです。

あなたの質問は、本質的に少し「未来を告げる」ことです。今日、Debianはさまざまなinitシステムの動作を許可しており、serviceコマンドはそれをすべて実行しようとします。しかし、Debian 9?それが何をサポートするかは誰にも分かりません...superinitの代わりにsystemdを使用すると、serviceコマンドが更新されます...

問題は、このソリューションがクロスプラットフォームで一貫していない可能性があることです。 serviceはCentOSまたはSuSEで動作しますか? systemctl

自分で書いている場合は、すべてのsystemctlベースのプラットフォームでsystemdを使用しますが、サポートするすべてのOSバリアントで大規模なテストを行います。

6
Stephen Harris