Inicia um programa com o systemd

3

Estou tentando instalar a última versão do ProFTPd (1.3.5) em uma caixa do CentOS 7, e preciso configurar e instalar manualmente. O motivo é que a versão do proftpd da EPEL não inclui mod_sftp (embora inclua mod_tls ). Esta é a saída de proftpd -l quando a versão do EPEL está instalada:

[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

Usando o método desse cara onde eu acho que ele estava usando o CentOS 6 , Eu configurei o proftpd com o seguinte:

./configure --prefix=/usr --with-includes=/usr/local/ssl/include --with-libraries=/usr/local/ssl/lib --enable-openssl --with-modules=mod_sftp --enable-dso

E então consegui executar make e make install com êxito.

O problema é que não parece criar nenhum script systemd:

[root@localhost]# systemctl start proftpd.service
Failed to issue method call: Unit proftpd.service failed to load: No such file or directory.

No entanto, o binário existe e o sistema sabe disso:

[root@localhost]# which proftpd
/sbin/proftpd

Além disso, parece não haver scripts de inicialização para isso em /etc/init.d nem em /usr/etc/init.d .

Quando eu executo o stand binário, ele é perfeito.

Mas eu gostaria de ter algum tipo de script init ou systemd funcionando para isso, para que ele inicie na inicialização (e eu terei um tempo mais fácil de gerenciar o serviço).

Alguma idéia de como isso é feito?

[Aviso: Eu postei essa mesma pergunta no Stack Overflow alguns dias atrás, pensando que essa era uma questão mais centrada em programação, mas que não viu nenhuma atividade, e acho que isso está relacionado o suficiente com a administração do sistema também é relevante aqui]

    
por David W 15.03.2015 / 10:21

1 resposta

3

A unidade systemd seria algo como isto:

$ 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

Então você poderia fazer:

$ sudo systemctl enable /etc/systemd/system/proftpd.service
$ sudo systemctl start proftpd.service

man systemctl deve colocar você no caminho certo.

    
por 15.03.2015 / 16:26