启动vsftpd失败是什么原因_CentOS 7 Vsftpd无法启动详解
不小心安裝了CentOS 7(說多了都是淚呀,各種不適應(yīng)),不過隨遇而安吧(PS:不要用既來之則安之,不懂的可以百度。),裝完系統(tǒng)后想跑個(gè)Vsftpd,
yum -y install vsftpd
坐等安裝完畢(用的手機(jī)2G流量那個(gè)心塞)。
啟動(dòng)vstfpd:
service start vsftpd (這條命令現(xiàn)在已經(jīng)不管用了,)
/etc/init.d/vsftd start (想都不用想,就沒有這個(gè)腳本)
這可怎么辦?當(dāng)然是systemctl了,這個(gè)命令在今后的版本里非常有用需要熟練掌握。
馬上來
systemctl list-unit-files |grep vsftpd.service
發(fā)現(xiàn)vsftpd.service服務(wù)果然是關(guān)閉的如下:
vsftpd.service ? ? ? ? ? ? ? disabled
沒錯(cuò),就是disable,然后啟動(dòng)該服務(wù)
systemctl start vsftp.service
馬上來
systemctl list-unit-files |grep vsftpd.service
發(fā)現(xiàn)vsftpd.service服務(wù)竟然是關(guān)閉的如下:
vsftpd.service ? ? ? ? ? ? ? disabled
是不是感覺當(dāng)頭一棒。
網(wǎng)上給了幾個(gè)解決方法莫過于關(guān)閉端口和重啟進(jìn)程其實(shí)都不能解決這個(gè)問題,
所有才有了這篇文章:單獨(dú)說開啟這個(gè)服務(wù)沒啥意思,我們分析一下原理
1>查看一下進(jìn)程狀態(tài)
[root@localhost ~]# 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
這里注釋一下命令(畢竟每個(gè)人都是從小白過來的嘛,不要歧視小白):
vsftpd.service - Vsftpd ftp daemon(開啟服務(wù)就要開啟daemo,我到現(xiàn)在都弄不明白這兩 ? ? ? 個(gè)有啥區(qū)別,反正書上就這么說的)
然后是Loaded(加載)/usr/lib/systemd/system/vsftpd.service,并且失敗,這里標(biāo)記一下 ????待會(huì)說。
然后是進(jìn)程號(hào)和配置文件路徑,不解釋。
最先三條是日志記錄嘗試啟動(dòng)vsftp ftp daemon(如果不理解daemo就干脆理解為服務(wù),個(gè)人觀 ? ? ?點(diǎn),不接受高手吐槽)。
看完了這個(gè)咱們?cè)倏纯慈罩?#xff0c;CentOS 7 上面沒了syslog,沒錯(cuò),是沒了,呵呵,替代品 ? ? ? 是journalctl,至于這個(gè)命令不解釋,自己可以去百度,這里只需要知道使用(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.
解釋一下:
啟動(dòng)daemon(沒錯(cuò)我就是個(gè)夜貓子,)
vsftpd.service 被終止啟動(dòng),系統(tǒng)做出判斷(翻譯比較粗糙湊合看吧,原諒我這英語四級(jí)都沒 ? ? 過的人),
然后是啟動(dòng)結(jié)果是已經(jīng)啟動(dòng)了(啟動(dòng)了,沒啟動(dòng)起來,也不報(bào)個(gè)錯(cuò)“囧”)
哈哈到這里大家應(yīng)該已經(jīng)能看明白哪里出問題了,如果您沒看出來不要緊,往下看
沒錯(cuò)就是vsftpd.service的daemon啟動(dòng)不起來,系統(tǒng)還提示了個(gè)systemd-devel,我們馬不停蹄 ? ? ?去看看vsftpd.service的daemon(也是上文的那個(gè)小尾巴,就是查看這里)
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]
不用擔(dān)心這個(gè)也肯定沒問題,我就是想讓你來看看daemon文件,可以修改ExecStart的內(nèi)容,當(dāng) ? ? ?然沒人像我這么無聊,不過如果你想讓別人找不到你的配置文件就很好用啦,自定義讓他們找 ? ? ?不到。
daemon沒問題,那還會(huì)什么有問題呀,那就是runlevel了,馬上輸入
chkconfig --list vsftpd
注意:該輸出結(jié)果只顯示 SysV 服務(wù),并不包含原生 systemd 服務(wù)。SysV 配置數(shù)據(jù)可能被原 ? ? ?生 systemd 配置覆蓋。
如果您想列出 systemd 服務(wù),請(qǐng)執(zhí)行 ‘systemctl list-unit-files‘。
欲查看對(duì)特定 target 啟用的服務(wù)請(qǐng)執(zhí)行
‘systemctl list-dependencies [target]‘。
(我啟用了中文。)
看來使要使用systemctl list-unit-files來查看,走起
systemctl list-unit-files | grep vsftpd.service
這不又回到原點(diǎn)了嘛,依舊是:
vsftpd.service ? ? ? ? ? ? ? disabled
好吧,實(shí)在是沒辦法,那我們只好跑到這個(gè)runlevel下面看看究竟是出了什么問題,還有就是 ? ? 這個(gè)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
果然發(fā)現(xiàn)問題了,systemctl通過調(diào)用該文件下的軟連接來實(shí)現(xiàn)該service是否被啟動(dòng),當(dāng)然本 ? 文描述的vsftpd.service的軟連接,所以無法啟動(dòng),細(xì)心的讀者一定發(fā)現(xiàn)了,這個(gè)軟連接連接的就是 ?這個(gè)服務(wù)的daemon了,發(fā)現(xiàn)問題后,問題就容易解決了,
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‘
手動(dòng)創(chuàng)建一個(gè)連接
2>大家也許會(huì)嫌麻煩,那有沒有更簡(jiǎn)單的辦法呀,答案也是有的,就是:
systemctl enable vsftpd.service
然后查看
systemctl list-unit-files | grep vsftpd.service
服務(wù)是不是起來了:
vsftpd.service ? ? ? ? ? ? ? ? ? ? ? enabled
備注:雖然大家只是命令輸錯(cuò)了。本文的目的是希望大家能學(xué)會(huì)分析問題,而不是做伸手黨,以上就是我解決該問題的步驟,有不足之處歡迎指正,
另:轉(zhuǎn)載請(qǐng)指明出處。
總結(jié)
以上是生活随笔為你收集整理的启动vsftpd失败是什么原因_CentOS 7 Vsftpd无法启动详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5js实现正计时,在Html5中
- 下一篇: 计算机一级基础知识100题及答案,全国计