Запустите программу с помощью systemd
Я пытаюсь установить последнюю версию ProFTPd (1.3.5) на коробку CentOS 7, и мне пришлось настраивать и устанавливать вручную. Причина в том, что версия proftpd EPEL не включает mod_sftp
(хотя это включает mod_tls
). Это вывод proftpd -l
когда установлена версия EPEL:
[root@blah /]# proftpd -l
Compiled-in modules:
mod_core.c
mod_xfer.c
mod_rlimit.c
mod_auth_unix.c
mod_auth_file.c
mod_auth.c
mod_ls.c
mod_log.c
mod_site.c
mod_delay.c
mod_facts.c
mod_dso.c
mod_ident.c
mod_readme.c
mod_auth_pam.c
mod_tls.c
mod_memcache.c
mod_cap.c
mod_ctrls.c
mod_lang.c
Используя метод этого парня, где я думаю, что он использовал CentOS 6, я настроил proftpd со следующим:
./configure --prefix=/usr --with-includes=/usr/local/ssl/include --with-libraries=/usr/local/ssl/lib --enable-openssl --with-modules=mod_sftp --enable-dso
И тогда я смог бежать make
а также make install
успешно.
Проблема в том, что это не похоже на создание каких-либо системных скриптов:
[root@localhost]# systemctl start proftpd.service
Failed to issue method call: Unit proftpd.service failed to load: No such file or directory.
Однако двоичный файл существует, и система знает об этом:
[root@localhost]# which proftpd
/sbin/proftpd
Кроме того, кажется, что нет никаких сценариев инициализации для этого в /etc/init.d
ни в /usr/etc/init.d
,
Когда я запускаю двоичный файл в одиночку, он прекрасно запускается.
Но я бы хотел, чтобы какой-то рабочий сценарий init или systemd работал для этого, чтобы он запускался при загрузке (и мне будет легче управлять сервисом).
Есть мысли о том, как это сделать?
[Отказ от ответственности: я разместил этот же вопрос на Stack Overflow пару дней назад, думая, что это вопрос, более ориентированный на программирование, но он не видел никаких действий, и я думаю, что это достаточно связано с системным администрированием, что здесь уместно тоже]
1 ответ
systemd
Блок будет выглядеть примерно так:
$ cat /etc/systemd/system/proftpd.service
[Unit]
Description=ProFTPd FTP Server
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/sbin/proftpd
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
Тогда вы могли бы сделать:
$ sudo systemctl enable /etc/systemd/system/proftpd.service
$ sudo systemctl start proftpd.service
man systemctl
должен вывести вас на правильный путь.