问题标签 [inetd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
network-programming - 使用inetd 还是不使用inetd... 我应该什么时候将inetd 用于我的网络服务器程序?
谁能给出一组简明的现实世界考虑因素,以推动选择是否使用 inetd 来管理充当网络服务器的程序?
(如果使用inetd,我认为它改变了程序中围绕网络代码的要求,所以我认为它肯定是与编程相关的,而不是一般的IT)
这个问题是基于我看到的一个实现,它使用由inetd 管理的控制程序来启动一个网络侦听器,然后它会永远运行并承受恒定和沉重的负载。它似乎不太适合教科书的 inetd 使用配置文件(按需、不经常使用、轻量级),这让我对更一般的问题感兴趣。
python - 如何调试奇怪的线程打开 fifo 问题?
Web 服务被配置为在接收到 USR1 信号时公开其一些数据。当 xinetd 服务器接收到来自远程客户端的请求时,该信号将由 xinetd 服务器发送,例如 nc myserver 50666。当 web 服务器收到 USR1 信号时,它会打开一个专用的 fifo 管道,将其数据写入管道,然后关闭管道。与此同时,xinetd 服务器读取管道并提供给远程客户端。
在大多数情况下,它们工作得很好,但偶尔,出于某种原因,客户端会收到重复记录。从日志来看,管道似乎没有正确关闭并且缓存是剩余的,所以下次它服务时,以前的和当前的都被发送到客户端。问题是它在尝试复制时不会经常发生,不幸的是,我无法复制一次。
以下是演示该过程的简单片段:
网络服务器:(webserver.py)
xinetd.d 服务器:(spitter.py)
那么究竟是什么导致了 dup 呢?如何触发它?当前修复我取消链接管道文件并每次重新创建它以避免任何剩余但我不知道这是否是一个正确的解决方案。
c++ - 当管道写入标准输出时,为什么 write() 到管道退出程序?
我有一个服务器应用程序在单独的线程中写入 popen("myCommand", "w") 文件描述符,如果传递给 popen() 的命令导致任何输出到 stdout 或 stderr,则我的应用程序退出。但是,这只是通过 inetd 调用我的服务器应用程序时的问题,如果我使用 ssh 启动服务器,则不会出现此问题。
同样,当我的服务器应用程序在单独的线程中从 popen("myCommand2", "r") 文件描述符中读取并且传递给 popen() 的命令导致任何输出到 stderr(stdin 将进入我的管道)时,应用程序退出。同样,这只发生在 inetd 召唤,而不是 ssh 召唤。
c++ - 为什么 gdb 不能附加到使用 inetd 调用的服务器应用程序?
我有一个服务器应用程序,可以使用 inetd 为客户端调用。但是,如果我尝试附加到使用 inetd 启动的服务器进程,我会收到以下响应:ptrace: Operation not allowed。
c++ - 正常方法失败时如何在 Linux 上找到可执行文件的位置?
在另一个问题中,答案指出,在带有 的 Unix 上/proc
,真正直接可靠的方法是 to readlink("/proc/self/exe", buf, bufsize)
,然后它继续提供备份解决方案,如下所示:
在没有 /proc 的 Unix 上(即如果上述失败):
- 如果 argv[0] 以“/”(绝对路径)开头,这就是路径。
- 否则,如果 argv[0] 包含“/”(相对路径),则将其附加到 cwd(假设尚未更改)。
- 否则在目录中搜索
$PATH
可执行文件argv[0]
。
之后检查可执行文件是否实际上不是符号链接可能是合理的。如果是相对于符号链接目录解析它。
现在就我而言,不幸的是,以上都不起作用:
/proc/self/exe exists
readlink()
但由于权限被拒绝 errno 13而失败。argv[0]
没有/
绝对或相对路径。$PATH
不包含在 中找到的可执行文件argv[0]
。
当 sgid 应用程序运行时,似乎也面临这个问题。就我而言,它不是 sgid,而是 inetd 启动。
java - 如何通过xinetd从java服务器获取客户端IP?
我正在通过 xinetd 超级服务器运行一个小型 Java 服务器。我想获取原始客户端 IP,但我不能,因为流位于 xinetd 和 java (stin/stdout) 之间。
有人知道如何在不查看 xinetd 日志文件的情况下获取客户端 IP 吗?(对我来说似乎是一个不好的解决方案)
谢谢 !
python - Python:从 inetd 运行 WSGI 服务器?
正如标题所示,是否可以从 (x)inetd 运行 WSGI 服务器?
ruby - 通过 xinetd 从 Ruby 脚本获取客户端 IP
如何从 xinetd 通过流套接字启动的 Ruby 脚本中获取客户端 IP 地址?在 PHP 中,我只会使用stream_socket_get_name(STDIN, true);
提前致谢!
tcp - 当端口连接到时启动进程
我想创建一个客户端,该客户端从同一 LAN 上的许多工作站中的任何一个发出单播数据请求。客户端可能会运行 Linux,但工作站可能会运行任何操作系统。是否可以避免在每个工作站上运行守护程序,但让它们在几秒钟内回复请求?我想避免创建守护进程,因为该服务可能不经常使用,并且我不想给工作站增加另一个进程的负担。
c - 从套接字描述符恢复 IP/端口
我正在编写一个inetd 的克隆,我必须在其中运行一个服务器来打印连接到它的客户端的IP 和端口。
当我覆盖STDIN
并STDOUT
使用套接字描述符时,我最初的解决方案是恢复sockaddr_in
包含所需信息的结构。然而,这样做getsockname()
会返回一个空结构,所有位都设置为 0。
知道我的方法有什么问题吗?我可以使用其他方法来恢复 IP/端口吗?
谢谢