今天在复习pureftpd,
安装后,我们一般是用 /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf 这串命令启动服务。
当我修改默认端口后,竟然不知道用什么命令去stop 和 restart。
每次修改完都需要重启虚拟机,觉得特别麻烦。
我就想为什么pureftpd不能像nginx那样把启动脚本放入/etc/init.d/ 呢?
然后就在网上搜索资料,终于找到了解决办法,有需要的同学可以试试。
步骤:
[root@LNMP6 ~]# cd /usr/local/src/pure-ftpd-1.0.37/contrib/ #先进入这个目录
[root@LNMP6 contrib]# cp redhat.init /etc/init.d/pureftpd #拷贝redhat.init 并命名为pureftpd
[root@LNMP6 contrib]# chmod 755 /etc/init.d/pureftpd #增加可执行权限
[root@LNMP6 contrib]# vim /etc/init.d/pureftpd #修改启动脚本
18 fullpath=/usr/local/pureftpd/sbin/$prog #第18行改成这样,都是我们pureftpd文件存放的路径。
19 pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho #第19行改成这样。
24 $fullpath /usr/local/pureftpd/etc/pure-ftpd.conf – daemonize #第24行改成这样。
31 kill $(cat /usr/local/pureftpd/var/run/pure-ftpd.pid)
# 第31行改成这样。这个PID文件是我们在pure-ftpd.conf里定义的存放路径。
然后保存。就可以直接试用 /etc/init.d/pureftpd start 或者 service pureftpd start 开启服务。
但是在我stop 服务时,又出现错误:
[root@LNMP6 init.d]# service pureftpd stop
停止 pure-config.pl:cat: /usr/local/pureftpd/var/run/pure-ftpd.pid: 没有那个文件或目录
(这个文件的路径是我们在pure-ftpd.conf里面定义的PIDFile的路径)
[root@LNMP6 pureftpd]# ls /usr/local/pureftpd #查看pureftpd目录下,只有这4个目录,没有var/run.
bin etc sbin share
[root@LNMP6 pureftpd]# mkdir -p /usr/local/pureftpd/var/run #我自己创建这个目录
然后重新启动pureftpd服务。 这个PID文件就自动加载出来了。
[root@LNMP6 pureftpd]# ls /usr/local/pureftpd/var/run/pure-ftpd.pid
/usr/local/pureftpd/var/run/pure-ftpd.pid
然后就可以正常的start stop 和restart..
加入chkconfig 列表:
[root@LNMP6 pureftpd]# chkconfig --addd pureftpd
[root@LNMP6 pureftpd]# chkconfig pureftpd on
安装后,我们一般是用 /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf 这串命令启动服务。
当我修改默认端口后,竟然不知道用什么命令去stop 和 restart。
每次修改完都需要重启虚拟机,觉得特别麻烦。
我就想为什么pureftpd不能像nginx那样把启动脚本放入/etc/init.d/ 呢?
然后就在网上搜索资料,终于找到了解决办法,有需要的同学可以试试。
步骤:
[root@LNMP6 ~]# cd /usr/local/src/pure-ftpd-1.0.37/contrib/ #先进入这个目录
[root@LNMP6 contrib]# cp redhat.init /etc/init.d/pureftpd #拷贝redhat.init 并命名为pureftpd
[root@LNMP6 contrib]# chmod 755 /etc/init.d/pureftpd #增加可执行权限
[root@LNMP6 contrib]# vim /etc/init.d/pureftpd #修改启动脚本
18 fullpath=/usr/local/pureftpd/sbin/$prog #第18行改成这样,都是我们pureftpd文件存放的路径。
19 pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho #第19行改成这样。
24 $fullpath /usr/local/pureftpd/etc/pure-ftpd.conf – daemonize #第24行改成这样。
31 kill $(cat /usr/local/pureftpd/var/run/pure-ftpd.pid)
# 第31行改成这样。这个PID文件是我们在pure-ftpd.conf里定义的存放路径。
然后保存。就可以直接试用 /etc/init.d/pureftpd start 或者 service pureftpd start 开启服务。
但是在我stop 服务时,又出现错误:
[root@LNMP6 init.d]# service pureftpd stop
停止 pure-config.pl:cat: /usr/local/pureftpd/var/run/pure-ftpd.pid: 没有那个文件或目录
(这个文件的路径是我们在pure-ftpd.conf里面定义的PIDFile的路径)
[root@LNMP6 pureftpd]# ls /usr/local/pureftpd #查看pureftpd目录下,只有这4个目录,没有var/run.
bin etc sbin share
[root@LNMP6 pureftpd]# mkdir -p /usr/local/pureftpd/var/run #我自己创建这个目录
然后重新启动pureftpd服务。 这个PID文件就自动加载出来了。
[root@LNMP6 pureftpd]# ls /usr/local/pureftpd/var/run/pure-ftpd.pid
/usr/local/pureftpd/var/run/pure-ftpd.pid
然后就可以正常的start stop 和restart..
加入chkconfig 列表:
[root@LNMP6 pureftpd]# chkconfig --addd pureftpd
[root@LNMP6 pureftpd]# chkconfig pureftpd on
编辑回复