web-dev-qa-db-ja.com

Ubuntu 16.04.1:一部のプログラムがsystemdシステムとinitVシステムの両方で起動されるのはなぜですか?

nginxがインストールされたUbuntu16.04.1の新規インストールがあり、dpkgがnginxをインストールすると、2つの場所で起動時の構成が登録されました。

Systemdの場所

起動時にnginxデーモン(または「マルチユーザーターゲット」)を開始するように指示するsystemd config

% ls -l /etc/systemd/system/multi-user.target.wants/nginx.service                       
/etc/systemd/system/multi-user.target.wants/nginx.service -> /lib/systemd/system/nginx.service

InitVの場所

起動時にnginxデーモンを開始する(または「レベル5を実行する」)ことを示すinitVconfig

% ls -l /etc/rc5.d/S02nginx
lrwxrwxrwx 1 root root 15 Apr  2 23:27 /etc/rc5.d/S02nginx -> ../init.d/nginx

Nginxを無効にすると、systemdは、ある種の下位互換性アクションが発生していることを示す出力を表示します

% Sudo systemctl disable  nginx.service  
Synchronizing state of nginx.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install disable nginx
insserv: warning: current start runlevel(s) (empty) of script `nginx' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `nginx' overrides LSB defaults (0 1 6).

これにより、両方のシンボリックリンクが上から削除されます。
なぜこの設定がこのようになっているのですか?新しいsystemdconfigまたは古いsystemVinitのどちらか一方だけがないのはなぜですか?

1
the_velour_fog

jordanm コメントとして、これはさまざまなinitシステムがサポートされているDebianから継承されています。それだけでなく、再インストールせずにinitシステムを変更して、有効または無効になっているサービスを含め、構成が存続することを期待できます。これが、systemdとsysvinitのセットアップが同期されている理由です。 (使用されている機能の少なくとも一部はアップストリームsystemdによって提供されており、DebianまたはUbuntu固有ではないことに注意してください。)

2
Stephen Kitt