Ubuntu vsftp自动重启策略
导读:Ubuntu 上让 vsftpd 异常退出后自动拉起的实用方案 一、使用 systemd 服务实现自动重启(推荐) 安装与启用 安装:sudo apt-get update && sudo apt-get instal...
Ubuntu 上让 vsftpd 异常退出后自动拉起的实用方案
一、使用 systemd 服务实现自动重启(推荐)
- 安装与启用
- 安装:sudo apt-get update & & sudo apt-get install vsftpd
- 启用开机自启:sudo systemctl enable vsftpd & & sudo systemctl start vsftpd
- 自定义单元增强“自动重启”
- 新建或编辑:sudo nano /etc/systemd/system/vsftpd.service
- 示例关键配置(按需调整路径与用户):
[Unit] Description=vsftpd FTP Server After=network.target [Service] Type=simple ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure RestartSec=5 User=vsftpd Group=vsftpd UMask=022 [Install] WantedBy=multi-user.target - 使配置生效:sudo systemctl daemon-reload
- 热加载配置:sudo systemctl reload vsftpd
- 常用检查:systemctl status vsftpd、journalctl -u vsftpd -f
- 说明
- 使用包管理器安装的 vsftpd 通常已自带 systemd 单元,以上为“增强版”示例,重点是设置 Restart=on-failure 与 RestartSec=5,让服务在异常退出时自动重启,并在变更配置时用 HUP 平滑重载。
二、使用 Supervisor 进行进程监控(替代方案)
- 安装:sudo apt-get install supervisor
- 配置:sudo nano /etc/supervisor/conf.d/vsftpd.conf
[program:vsftpd] command=/usr/sbin/vsftpd /etc/vsftpd.conf autostart=true autorestart=true stderr_logfile=/var/log/vsftpd.err.log stdout_logfile=/var/log/vsftpd.out.log - 生效与启停:sudo supervisorctl reread & & sudo supervisorctl update,随后 sudo supervisorctl start vsftpd,可用 sudo supervisorctl status vsftpd 查看。
三、关键参数与运维要点
- 自动重启策略
- Restart=on-failure:仅在进程以非 0 状态退出、被信号终止或超时等“失败”场景重启;若希望“任何退出都重启”,可改为 always(更激进,注意避免频繁崩溃导致资源耗尽)。
- RestartSec=5:重启前等待 5 秒,避免“快速循环重启”。
- 配置热重载
- vsftpd 支持 SIGHUP 重载配置:执行 sudo systemctl reload vsftpd 或向主进程发送 kill -HUP $MAINPID,无需中断现有连接(视配置与客户端行为而定)。
- 日志与排障
- 使用 journalctl -u vsftpd -f 实时查看日志;Supervisor 方案则查看其 stdout/stderr 日志文件。
- 运行身份与权限
- 示例采用 User=vsftpd / Group=vsftpd,请确保该用户对配置、日志及家目录具备合适权限;如使用 User=ftp / Group=ftp,也需相应调整权限与目录访问控制。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu vsftp自动重启策略
本文地址: https://pptw.com/jishu/768639.html
