Ubuntu FTP Server(以vsftpd为例)自动重启设置方法
systemd是Ubuntu默认的服务管理工具,可通过配置实现FTP服务开机自启和崩溃自动重启,是最稳定、高效的解决方案。
sudo apt update
sudo apt install vsftpd
sudo systemctl enable vsftpd # 设置开机自启
sudo systemctl start vsftpd # 立即启动服务
编辑vsftpd的systemd服务文件,添加Restart相关配置:
sudo nano /etc/systemd/system/vsftpd.service.d/restart.conf
在文件中添加以下内容(若文件不存在,可直接创建):
[Unit]
Description=vsftpd FTP Server (Auto Restart)
After=network.target
[Service]
Type=simple
ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf
Restart=on-failure # 服务崩溃时自动重启(非正常退出,如代码错误、崩溃)
RestartSec=5 # 重启间隔时间(秒),避免频繁重启
User=vsftpd
Group=vsftpd
[Install]
WantedBy=multi-user.target
注:若系统未自动创建
vsftpd.service.d目录,可手动创建:sudo mkdir -p /etc/systemd/system/vsftpd.service.d
sudo systemctl daemon-reload # 使新配置生效
sudo systemctl status vsftpd # 检查服务状态(需显示"active (running)")
通过systemctl status命令可查看Restart配置是否生效(如显示"Restart=on-failure")。
若不想修改systemd配置,可通过cron定时任务定期重启FTP服务,但无法针对“崩溃”场景精准恢复。
crontab -e
在文件末尾添加以下内容(示例:每5分钟重启一次,可根据需求调整时间间隔):
*/5 * * * * /usr/sbin/service vsftpd restart
保存并退出(按Ctrl+X→Y→Enter)。
sudo systemctl status cron # 确保cron服务运行
grep CRON /var/log/syslog # 查看cron日志(确认重启任务是否执行)
Restart=on-failure能精准识别崩溃场景,更符合自动恢复需求。/etc/vsftpd.conf后,需重启服务使更改生效:sudo systemctl restart vsftpd。sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload
通过上述方法,Ubuntu上的vsftpd服务可实现自动重启,保障FTP服务的持续可用性。