CentOS 7 Vsftpd无法启动详解

不小心安装了CentOS 7(说多了都是泪呀,各种不适应),不过随遇而安吧(PS:不要用既来之则安之,不懂的可以百度。),装完系统后想跑个Vsftpd,

yum -y install vsftpd

坐等安装完毕(用的手机2G流量那个心塞)。

启动vstfpd:

service start vsftpd (这条命令现在已经不管用了,)

/etc/init.d/vsftd start (想都不用想,就没有这个脚本)

这可怎么办?当然是systemctl了,这个命令在今后的版本里非常有用需要熟练掌握。

马上来

systemctl list-unit-files |grep vsftpd.service

发现vsftpd.service服务果然是关闭的如下:

vsftpd.service               disabled

没错,就是disable,然后启动该服务

systemctl start vsftp.service

马上来

systemctl list-unit-files |grep vsftpd.service

发现vsftpd.service服务竟然是关闭的如下:

vsftpd.service               disabled

是不是感觉当头一棒。

网上给了几个解决方法莫过于关闭端口和重启进程其实都不能解决这个问题,

所有才有了这篇文章:单独说开启这个服务没啥意思,我们分析一下原理

1>查看一下进程状态

[[email protected] ~]# systemctl status vsftpd.service

vsftpd.service - Vsftpd ftp daemon

Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled)

Active: active (running) since 一 2015-10-19 23:37:06 CST; 11min ago

Main PID: 23165 (vsftpd)

CGroup: /system.slice/vsftpd.service

└─23165 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

10月 19 23:37:06 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.

10月 19 23:37:33 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.

10月 19 23:38:39 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon

这里注释一下命令(毕竟每个人都是从小白过来的嘛,不要歧视小白):

vsftpd.service - Vsftpd ftp daemon(开启服务就要开启daemo,我到现在都弄不明白这两       个有啥区别,反正书上就这么说的)

然后是Loaded(加载)/usr/lib/systemd/system/vsftpd.service,并且失败,这里标记一下     待会说。

然后是进程号和配置文件路径,不解释。

最先三条是日志记录尝试启动vsftp ftp daemon(如果不理解daemo就干脆理解为服务,个人观      点,不接受高手吐槽)。

看完了这个咱们再看看日志,CentOS 7 上面没了syslog,没错,是没了,呵呵,替代品       是journalctl,至于这个命令不解释,自己可以去百度,这里只需要知道使用(journalctl     -xn)就好,信息如下:

10月 19 23:37:06 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.

-- Subject: Unit vsftpd.service has finished start-up

-- Defined-By: systemd

-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

--

-- Unit vsftpd.service has finished starting up.

--

-- The start-up result is done.

解释一下:

启动daemon(没错我就是个夜猫子,)

vsftpd.service 被终止启动,系统做出判断(翻译比较粗糙凑合看吧,原谅我这英语四级都没     过的人),

然后是启动结果是已经启动了(启动了,没启动起来,也不报个错“囧”)

然后让去、http://lists.freedesktop.org/mailman/listinfo/systemd-devel寻求帮助,

哈哈到这里大家应该已经能看明白哪里出问题了,如果您没看出来不要紧,往下看

没错就是vsftpd.service的daemon启动不起来,系统还提示了个systemd-devel,我们马不停蹄      去看看vsftpd.service的daemon(也是上文的那个小尾巴,就是查看这里)

cat /usr/lib/systemd/system/vsftpd.service

[Unit]

Description=Vsftpd ftp daemon

After=network.target

[Service]

Type=forking

ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

[Install]

不用担心这个也肯定没问题,我就是想让你来看看daemon文件,可以修改ExecStart的内容,当      然没人像我这么无聊,不过如果你想让别人找不到你的配置文件就很好用啦,自定义让他们找      不到。

daemon没问题,那还会什么有问题呀,那就是runlevel了,马上输入

chkconfig --list vsftpd

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原      生 systemd 配置覆盖。

如果您想列出 systemd 服务,请执行 ‘systemctl list-unit-files‘。

欲查看对特定 target 启用的服务请执行

‘systemctl list-dependencies [target]‘。

(我启用了中文。)

看来使要使用systemctl list-unit-files来查看,走起

systemctl list-unit-files | grep vsftpd.service

这不又回到原点了嘛,依旧是:

vsftpd.service               disabled

好吧,实在是没办法,那我们只好跑到这个runlevel下面看看究竟是出了什么问题,还有就是     这个systemctl究竟是何方神圣。

ll /etc/systemd/system/multi-user.target.wants

总用量 0

lrwxrwxrwx. 1 root root 35 10月 17 18:07 atd.service ->             /usr/lib/systemd/system/atd.service

lrwxrwxrwx. 1 root root 38 9月  25 12:54 auditd.service -> /usr/lib/systemd/system/auditd.service

lrwxrwxrwx. 1 root root 37 9月  25 12:50 crond.service ->         /usr/lib/systemd/system/crond.service

lrwxrwxrwx. 1 root root 42 9月  25 12:52 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service

lrwxrwxrwx. 1 root root 46 9月  25 12:51 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service

lrwxrwxrwx. 1 root root 40 9月  25 12:49 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target

lrwxrwxrwx. 1 root root 39 9月  25 12:52 rsyslog.service -> /usr/lib/systemd/system/rsyslog.service

lrwxrwxrwx. 1 root root 40 10月 17 01:37 sendmail.service -> /usr/lib/systemd/system/sendmail.service

lrwxrwxrwx. 1 root root 41 10月 17 01:37 sm-client.service -> /usr/lib/systemd/system/sm-client.service

lrwxrwxrwx. 1 root root 36 9月  25 12:55 sshd.service -> /usr/lib/systemd/system/sshd.service

lrwxrwxrwx. 1 root root 37 9月  25 12:55 tuned.service -> /usr/lib/systemd/system/tuned.service

果然发现问题了,systemctl通过调用该文件下的软连接来实现该service是否被启动,当然本   文描述的vsftpd.service的软连接,所以无法启动,细心的读者一定发现了,这个软连接连接的就是  这个服务的daemon了,发现问题后,问题就容易解决了,

1> cd /etc/systemd/system/multi-user.target.wants

然后添加

ln -s ‘/usr/lib/systemd/system/vsftpd.service‘ ‘/etc/systemd/system/multi-user.target.wants/vsftpd.service‘

手动创建一个连接

2>大家也许会嫌麻烦,那有没有更简单的办法呀,答案也是有的,就是:

systemctl enable vsftpd.service

然后查看

systemctl list-unit-files | grep vsftpd.service

服务是不是起来了:

vsftpd.service                       enabled

备注:虽然大家只是命令输错了。本文的目的是希望大家能学会分析问题,而不是做伸手党,以上就是我解决该问题的步骤,有不足之处欢迎指正,

另:转载请指明出处。

时间: 2024-12-28 01:17:09

CentOS 7 Vsftpd无法启动详解的相关文章

Centos iptables防火墙关闭启动详解

CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下 1.直接关闭防火墙 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 2.设置 iptables service yum -y install iptables-services 如果要修改防火墙配置,如增加防火墙端口3306 vi /etc/sysconf

centos启动详解

centos启动的过程是怎样的呢? 1:加载BIOS信息(计算机的硬件信息在BIOS中有保存的)找到第一个引导设备(硬盘在bios里我们可以设置boot引导) 2:根据第一个引导设备找到它的MBR  的boot Loader(mbr是硬盘的第一个扇区 boot Loader可以认为是grub spfdisk等程序 ) 3:boot Loader 找kernel(内核),kernel会加载硬件信息和加载驱动程序(这里由硬件转到软件了) 4:之后会调用init进程 init会让各相关服务启动起来 c

CentOS下安装Apache步骤详解

CentOS下安装Apache步骤详解 一.实验环境 Linux: CentOS release 6.7 (Final) Apache: httpd-2.4.23.tar.gz VMware: VMware 10.0 宿主机: Win10 x64 二.Apache介绍 Apache一款 Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速.可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器

Linux vsftpd服务配置详解

[背景] 近日,一朋友domino服务器要进行升级.迁移,搭建了linux测试系统,也开启vsftpd服务,可是配置的ftp账号,程序无法正常下载附件. [问题跟踪] 通过ftp客户端连接工具登录,发现未跳转到ftp账号指定的目录下面. cat /etc/vsftpd.config发现开启了: local_root=/home/test 将此注释重启ftp服务正常. 附录(vsftpd配置详解): vsftpd服务器配置文件"/etc/vsftpd/vsftpd.conf",以此为例.

CentOS 7安装MariaDB 10详解以及相关配置

CentOS 7安装MariaDB 10详解以及相关配置 第一步:添加 MariaDB yum 仓库 首先在CentOS操作系统中/etc/yum.repos.d/目录下添加 MariaDB 的YUM配置文件MariaDB.repo文件. vi /etc/yum.repos.d/MariaDB.repo 在该文件中添加以下内容保存: [mariadb]name = MariaDBbaseurl = http://yum.mariadb.org/10.2/centos7-amd64gpgkey=h

PC104上配置VxWorks硬盘启动详解

DEVPC104-SYS是一款在 PC104 尺寸上开发出来的嵌入式工业主板.以其小巧的体积﹑超强的功能和稳定性,可广泛应用于自动查询系统﹑POS 机﹑网络终端﹑仪器仪表﹑信息家电.工业控制等各种嵌入式领域. VxWorks 是美国 Wind River System 公司推出的一个实时操作系统.通常所指的VxWorks操作系统对应软件包括三个部分:引导程序bootrom.主操作系统vxWorks.以及用户开发程序.Tornado提供一个集成的编译bootrom.vxWorks以及用户程序的工程

Android之Zygote启动详解

我们知道Android系统是基于Linux内核的,在Linux系统中所有的进程都是init进程的子进程.Zygote也一样它是在系统启动的过程中由init进程创建的,在系统启动脚本init.rc中: <span style="font-size:14px;">@init.rc service zygote /syste/bin/app_process -Xzygote /system/bin -zygote --start-system-server class main

【转】centos关机与重启命令详解

连接:http://blog.csdn.net/jiangzhengdong/article/details/8036594 Linux centos关机与重启命令详解与实战 Linux centos重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shutdown -r 10 过10分钟自动重启(root用户使用) 4.shutdown -r 20:35 在时间为20:35时候重启(root用户使用) 如果是通过shutdown命令设置重启的话

centos关机与重启命令详解

Linux centos关机与重启命令详解与实战 Linux centos重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shutdown -r 10 过10分钟自动重启(root用户使用) 4.shutdown -r 20:35 在时间为20:35时候重启(root用户使用) 如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启 Linux centos关机命令: 1.halt 立刻关机 2.poweroff