【问题标题】:Terminating TFTPD after file transfer文件传输后终止 TFTPD
【发布时间】:2014-07-14 11:43:24
【问题描述】:

我正在使用inetutils tftpd,它是通过inetd 使用inetd.conf 中的以下条目启动的:

tftp       dgram   udp     wait    root   /bin/tftpd -p -u root -s /home

(忽略root账号和/home目录的使用,仅供测试,后面会改)。

inetd 版本为inetd (GNU inetutils) 1.7

tftpd 版本为tftp-hpa 5.2, with remap, with tcpwrappers

一切正常,但问题是我没有关于文件传输状态的任何信息。考虑到我有 10 多个依赖于 tftpd 的脚本,我需要:

  • 文件传输或错误后终止tftpd(因为它一直在后台运行,什么都不做)

  • 让它以我可以grepsed或至少$?的方式显示文件传输状态

这可能吗,如果没有,我应该使用其他什么tftpd 服务器?

【问题讨论】:

  • 你好,乌尔里克。除非您打算编写自己的 TFTP 服务器,否则此问题可能更适合 serverfault.com 或 superuser.com -“有关通用计算硬件和软件的问题对于 Stack Overflow 来说是题外话,除非它们直接涉及主要用于编程的工具” .
  • 是的,我正在考虑这个问题,但我正在使用 TFTP 作为我的脚本引擎的组成部分,所以我想我可以从这个社区获得一些有用的意见......
  • TFTP 与协议一样愚蠢,从安全角度来看,tftpd 是可怕的。看看wiki.python.org/moin/tftp

标签: linux bash tftp inetd


【解决方案1】:

来自 tftpd 的手册页:

--timeout 超时,-t 超时

从 inetd 运行时,它指定在终止服务器之前等待第二个连接的时间(以秒为单位)。当另一个请求进来时,inetd 将重新启动服务器。默认值为 900(15 分钟)。

尝试像这样更改您的 inetd.conf:

tftp       dgram   udp     wait    root   /bin/tftpd -t 5 -p -u root -s /home

然后重启inetd并测试。

【讨论】:

  • 您的答案是关键——我编写了一个bash 脚本,在进程列表中查找tftpd 并报告状态。顺便说一句,GNU tftpd 对给定参数的顺序很挑剔,它们需要按照手册页中列出的顺序指定...
猜你喜欢
  • 1970-01-01
  • 2014-10-11
  • 1970-01-01
  • 2011-10-06
  • 2019-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-15
相关资源
最近更新 更多