当inetd
使多个程序作为服务运行时,是否inetd
需要将程序编写为守护程序(例如,没有控制终端,没有交互式输入,...)?
或者可以inetd
对非守护进程进行守护进程,类似于setid
可以做什么?
nc
顺便说一句,鉴于,同样的问题https://unix.stackexchange.com/a/500646/674
谢谢。
答案1
通常,设计为执行的应用程序inetd
应该不是尝试让自己成为守护进程。inetd
将在建立传入连接时执行该命令,该进程将作为 的子进程运行inetd
,并且当会话结束时它可以终止。
所以,举例来说,你能运行sshd
via inetd
,但您需要传递-D
标志以sshd
防止它成为守护进程。
如果建立 2 个连接,inetd
则将运行该程序的两个副本。