环境
- Red Hat Enterprise Linux 7
- tftp-server
- xinetd
问题
tftp.service
正在自动变为非活动状态。- 系统启动时,
tftp.service
未启动。
# systemctl status -l tftp
● tftp.service - Tftp Server
Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)
Active: inactive (dead)
Docs: man:in.tftpd
决议
- 只需确保
tftp.socket
已启用并处于运行状态:
# systemctl enable tftp.socket
# systemctl start tftp.socket
# systemctl status tftp.socket
- 如果
tftp.socket
从远程服务器接收到任何对tftpd
守护进程的请求,则启动tftp.service
,否则将tftp_service
保持在停止状态。
根源
- 有两种方法可以使用套接字激活功能:
xinetd
systemd
tftpd
守护进程可以通过xinetd
或systemd
套接字激活启动。- 当
tftpd
通过xinetd
启动时,systemd
无法跟踪它;因为tftpd
现在是xinetd
的子进程。 - 如果
tftpd
通过套接字单元激活或直接通过systemd
启动,则systemd
代表tftpd
侦听。当systemd
在端口上收到请求时,只有它分叉一个新的tftpd
服务器,即它启动tftpd.service