CentOS 7 Vsftpd無法啟動詳解

來源:互聯網
上載者:User

標籤: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 


備忘:雖然大家只是命令輸錯了。本文的目的是希望大家能學會分析問題,而不是做伸手黨,以上就是我解決該問題的步驟,有不足之處歡迎指正,

另:轉載請指明出處。

本文出自 “慕白流蘇” 部落格,請務必保留此出處http://mubsky.blog.51cto.com/3081455/1704380

CentOS 7 Vsftpd無法啟動詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.