用systemd启动一个程序

我试图将最新版本的ProFTPd(1.3.5)安装到CentOS 7盒子上,最后不得不手动configuration和安装。 原因是EPEL的proftpd版本不包含mod_sftp (尽pipe它包含mod_tls )。 这是EPEL版本安装时proftpd -l的输出:

 [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 ,我用下面的configuration来configurationproftpd:

 ./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

问题是,它看起来不像它创build任何systemd脚本:

 [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脚本。

当我单独运行二进制文件的时候,它就可以正常运行了。

但是我希望得到某种工作的init或者systemd脚本,这样它就可以在启动的时候启动(并且我将能够更轻松地pipe理服务)。

任何想法如何做到这一点?

[免责声明:我几天前在Stack Overflow上发布了同样的问题,认为这是一个更加以编程为中心的问题,但是没有看到任何活动,我认为这与系统pipe理相关太]

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应该让你走上正轨。