在CentOS系统中,要使SFTP服务(通常是通过OpenSSH提供的)在出现故障或意外停止时自动重启,可以使用以下几种方法:
创建或编辑Systemd服务文件:
打开终端并使用文本编辑器(如nano
或vim
)创建或编辑SFTP服务的Systemd服务文件。
sudo nano /etc/systemd/system/sftp.service
在文件中添加以下内容:
[Unit]
Description=SFTP Service
After=network.target sshd.service
[Service]
Type=simple
User=nobody
Group=nogroup
ExecStart=/usr/sbin/sshd -D
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
请注意:
User
和Group
可以根据你的需求进行调整。ExecStart
路径可能需要根据你的系统配置进行调整。重新加载Systemd配置: 保存并关闭文件后,运行以下命令以重新加载Systemd配置:
sudo systemctl daemon-reload
启用并启动服务: 启用服务以确保它在系统启动时自动启动,并立即启动服务:
sudo systemctl enable sftp.service
sudo systemctl start sftp.service
检查服务状态: 使用以下命令检查SFTP服务的状态:
sudo systemctl status sftp.service
安装Supervisor: 如果尚未安装Supervisor,可以使用以下命令进行安装:
sudo yum install supervisor
配置Supervisor: 创建一个新的Supervisor配置文件来管理SFTP服务。
sudo nano /etc/supervisor/conf.d/sftp.conf
在文件中添加以下内容:
[program:sftp]
command=/usr/sbin/sshd -D
autostart=true
autorestart=true
stderr_logfile=/var/log/sftp.err.log
stdout_logfile=/var/log/sftp.out.log
user=nobody
重新加载Supervisor配置: 保存并关闭文件后,运行以下命令以重新加载Supervisor配置:
sudo supervisorctl reread
sudo supervisorctl update
启动SFTP服务: 使用以下命令启动SFTP服务:
sudo supervisorctl start sftp
检查服务状态: 使用以下命令检查SFTP服务的状态:
sudo supervisorctl status sftp
通过以上两种方法之一,你可以确保SFTP服务在CentOS系统中自动重启。选择哪种方法取决于你的具体需求和系统配置。