Я использую yum для установки vsftpd. Почему он не находится в `/ etc / rc.d / init.d /`?

Мой источник yum является локальным источником iso, и я использую yum install vsftpd -y , я использую whereis find vsftpd :

 [root@localhost etc]# whereis vsftpd vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz 

Оказывается, в /usr/sbin/ , почему он не находится в /etc/rc.d/init.d ?


РЕДАКТИРОВАТЬ

Я использую CentOS 7.2 .

/etc/init.d или /etc/rc.d/init.d , где находятся сценарии инициализации для программных приложений. /usr/sbin (или /usr/bin ) – это место, где исполняются исполняемые файлы приложения.

/etc/rc.d/init.d просто содержит скрипт для вызова приложения (в вашем случае vsftpd). Сценарий обычно используется для запуска приложения в качестве службы демона во время загрузки процессом init . В дополнение к этому сценарии в /etc/init.d предоставляют параметры запуска, остановки, состояния и перезапуска.

vsftpd – это приложение, и обычно он имеет служебный файл в /etc/systemd/system/ вместо сценария запуска. Вот почему он не находится в /etc/init.d/

Потому что, если вы читаете man whereis , он ищет только двоичные файлы в стандартном $PATH . Например

 # echo $PATH /usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 

Обратите внимание, что /etc/init.d не находится в PATH .

Вы можете просмотреть все файлы, установленные RPM vsftpd, с помощью rpm -q --dump vsftpd .

Как отметил @Gilson_Varghese, в /etc/init.d не обязательно будет скрипт. Там может быть только системный блок. Если есть оба, systemd будет использовать только systemd unit! Пакеты будут устанавливать модули systemd в /lib/systemd/system/ (not /etc !) .service расширением .service .