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服務的持續可用性。