Je suis sur Ubuntu 15.04 et je viens d'installer vsftpd
. Lorsque j'exécute la commande service vsftpd status
, j'obtiens le résultat suivant:
vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2015-10-09 19:18:50 IST; 3min 11s ago
Process: 2981 ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf (code=exited, status=2)
Process: 2979 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
Main PID: 2981 (code=exited, status=2)
Oct 09 19:18:50 harshal-Lenovo-B40-70 systemd[1]: Starting vsftpd FTP server...
Oct 09 19:18:50 harshal-Lenovo-B40-70 systemd[1]: Started vsftpd FTP server.
Oct 09 19:18:50 harshal-Lenovo-B40-70 systemd[1]: vsftpd.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Oct 09 19:18:50 harshal-Lenovo-B40-70 systemd[1]: Unit vsftpd.service entered failed state.
Oct 09 19:18:50 harshal-Lenovo-B40-70 systemd[1]: vsftpd.service failed.
J'ai vérifié /etc/vsftpd.conf
, il existe et je n'y ai rien trouvé d'anormal. Comment puis-je résoudre ça?
J'ai eu les mêmes symptômes en essayant de démarrer vsftpd sur Ubuntu 16.04. Dans mon cas, il suffisait de commenter cette ligne dans /etc/vsftpd.conf
:
listen_ipv6=YES
Je ne sais pas pourquoi je ne travaille pas avec ipv6 pour moi, mais je n'ai pas besoin d'IP-v6 et sa désactivation a résolu le problème dans mon cas.
étape 1: vérifiez le fichier vsftpd.conf
listen=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
Étape 2: Pour voir quel service ftp est en cours d’utilisation
$ lsof -i | grep ftp
étape 3: pour arrêter xinetd
$ Sudo service xinetd stop
Étape 4: Après avoir arrêté xinetd, redémarrez votre service vsftpd en tapant
$ /etc/init.d/vsftpd restart
Cela peut être corrigé en commentant:
listen_ipv6=yes
et je suis maintenant actif sur vsftpd.
En plus de certaines des autres solutions (listen_ipv6=NO
et listen=YES
), la mienne échouait avec la même erreur car j'avais inclus des commentaires après les éléments que j'avais modifiés:
listen_ipv6=NO # modified
Cela causait également la même erreur status=2/INVALIDARGUMENT
. Ne pouvait le comprendre qu'en exécutant directement le démon:
$ Sudo /usr/sbin/vsftpd /etc/vsftpd.conf
500 OOPS: bad bool value in config file for: listen_ipv6
Ni systemctl/service, ni /var/log/vsftpd.log n'ont été utilisés.
La solution consistait à supprimer le commentaire de fin:
listen_ipv6=NO
vsftpd a besoin que le fichier /etc/vsftpd.conf soit la propriété de root. Vérifiez à qui appartient le
ls -la /etc
Pour changer le propriétaire, exécutez la commande suivante en tant que root ou via Sudo
chown root /etc/vsftpd.conf
Aucune de ces solutions n'a fonctionné pour moi. J'ai même désactivé SELinux, ce qui n'était pas la cause et le fichier de configuration de vsftpd est parfait à 100%, car service vstfpd start
fonctionne instantanément, mais il ne veut tout simplement pas démarrer au démarrage.
Ma solution finale a été ce script bash qui fonctionne avec cron vérifiant continuellement le service et fonctionne parfaitement à présent. Il démarre vsftp au démarrage en vérifiant et en constatant que le service est mort, puis en le démarrant.
#!/bin/bash
service=vsftpd
if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))
then
echo "$service is running!!!"
else
service vsftpd start
fi
Et puis mon cron est
* * * * * Sudo /usr/sbin/startvsftpd.sh