proftpd服务端每隔几天就重启一次,日志如下:
看起来这又像是一个仅有两行日志的无头案了。不过由于日志明确给出了退出信号“killed (signal 15)”,因此Google的话还是比较简单找到答案的,最后在一篇Stack Overflow中找到了解决方案。
此问题是由于logrotate在日志转储时,ProFTPD未能在重启时停止造成的(…ProFTPD not stopping in time to be restarted)。解决方法既是在通过start-stop-daemon关闭ProFTPD进程时进行多次尝试,以确保ProFTPD得以正常关闭,这样就可以在关闭之后重新启动程序了。
目前Ubuntu还没有发布相关的修复,Debian也仅在unstable分支(sid)中修复了此问题。一个临时的解决方法是编辑/etc/init.d/proftpd文件,将文件第109行(Kaijia的ProFTPD版本为1.3.5~rc3-2.1ubuntu2)的:
start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE" |
改为
start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE" --retry $SIGNAL/30/KILL/60 |
即可修复此问题。
注:Stack Overflow原文中–retry参数写的是1,但Debian发布的修复中使用了“$SIGNAL/30/KILL/60”因此建议使用后者。
参考:
http://www.kaijia.me/2014/08/proftpd-killed-signal-15-issue-solved/
http://*.com/questions/23666697/proftpd-killed-signal-15-error-how-to-fix-logrotate-restart-error