我有一台 CentOS 7.1 机器,最近安装的,目前没有配置其他服务。我已经通过 安装了 vsftpd yum
,但是当我启动服务(通过systemctl
)时,我得到了响应:
vsftpd.service 的作业失败,因为控制进程以错误代码退出。有关详细信息,请参阅“systemctl status vsftpd.service”和“journalctl -xe”。
systemctl status
并不是特别有启发性:
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2017-05-02 11:17:55 BST; 49s ago
Process: 111420 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=1/FAILURE)
并journalctl -xe
提供以下内容(为简洁起见删除了时间戳):
systemd[1]: Received SIGCHLD from PID 111421 (vsftpd).
systemd[1]: Child 111420 (vsftpd) died (code=exited, status=1/FAILURE)
systemd[1]: Child 111420 belongs to vsftpd.service
systemd[1]: vsftpd.service: control process exited, code=exited status=1
systemd[1]: vsftpd.service got final SIGCHLD for state start
systemd[1]: vsftpd.service changed start -> failed
systemd[1]: Job vsftpd.service/start finished, result=failed
systemd[1]: Failed to start Vsftpd ftp daemon.
systemd[1]: Sent message type=signal sender=n/a destination=n/a object=/org/freedesktop/systemd1 interface=org.freedesktop.systemd1.Manager member=JobRemoved cookie=9 reply_cookie=0 error=n/a
systemd[1]: Sent message type=signal sender=n/a destination=n/a object=/org/freedesktop/systemd1 interface=org.freedesktop.systemd1.Manager member=JobRemoved cookie=17180 reply_cookie=0 error=n/a
systemd[1]: Unit vsftpd.service entered failed state.
systemd[1]: vsftpd.service failed.
systemd[1]: vsftpd.service: cgroup is empty
systemd[1]: Child 111421 (vsftpd) died (code=exited, status=2/INVALIDARGUMENT)
唯一有意义的行是倒数第二行,vsftpd.service: cgroup is empty
但我找不到任何有用的东西。配置文件是 yum repo 中的默认设置。我在测试环境中遵循了这些相同的步骤,它们运行良好。
答案1
对我来说,问题在于vsftpd
CentOS 7 上的默认安装要求主机启用 IPv6。但在我的例子中,并没有启用,而且我没有注意到本地 VM 和服务提供商提供给我们的 VM 之间的区别。
在配置文件中/etc/vsftpd/vsftpd.conf
更改行(靠近文件末尾):
listen=NO
listen_ipv6=YES
改为:
listen=YES
listen_ipv6=NO
服务现在开始!
答案2
在配置文件中将/etc/vsftpd/vsftpd.conf
其更改为
listen=YES
listen_ipv6=NO
别忘了跑步systemctl restart vsftpd.service