未记录的选项“netserver -D”的意图是什么?

未记录的选项“netserver -D”的意图是什么?

netserver二进制文件通常与iperf3.在许多上下文包括其他 Stack Exchange 问题,启动方法netserver以神秘选项显示-D

-D选项未在手册页中记录,该选项似乎也没有执行任何不同操作,也没有在我发现的任何其他地方给出netserver(1)启动的原因。-D

所以我的问题,如果可以回答的话 --D该选项的目的是什么?推而广之,该选项记录在哪里-D

这是一个示例单元文件,其中包含-D, per弗拉维奥的博客这与我正在使用的很接近:

[Unit]
Description="Netperf netserver daemon"
After=network.target

[Service]
ExecStart=/usr/local/bin/netserver -D

[Install]
WantedBy=multi-user.target

答案1

找出答案的一种方法是看源码:-D导致netserver不是daemonise,并跳过检查它是否是一个inetd孩子。

netserver -h提到这一点(部分):

Usage: netserver [options]

Options:
[...]
    -D                Do not daemonize

所以 中的选项的目的netserver是防止它被守护,IE分叉自身以在后台运行。

systemd 单元中此选项的目的是使其更容易处理作为一项服务。

答案2

D可能代表调试,尽管没有表明其意图开发商添加时(可能代表他人):

commit 88eecaf68174e4e0190e2b866e0bcb59b81b6061                                 
Author: raj <raj@5bbd99f3-5903-0410-b283-f1d88047b228>                          
Date:   Mon Jul 11 21:58:41 2011 +0000                                          
                                                                            
massive re-write of src/netserver.c to clean out old spaghetti allow multiple listen sockets for control and run netserver without daemonizing or spawning children to avoid fork calls which may not sit well with various bypass libraries.  this has probably broken the Windows code and perhaps other platforms as well but it has been tested under linux

使用来源(即,阅读netserver.c):

case 'D':
  /* perhaps one of these days we'll take an argument */
  want_daemonize = 0;
  not_inetd = 1;
  break;

第一个变量want_daemonize用于相同的文件控制程序是否将自身放入背景:

/* we are the top netserver process, so we have to create the
   listen endpoint(s) and decide if we want to daemonize */
setup_listens(local_host_name,listen_port,local_address_family);
if (want_daemonize) {
  daemonize();
}
accept_connections();

另一个变量not_inetd控制是否尝试打开inetd服务的套接字。

开发人员可能考虑到其他程序的长期行为,例如,如 2002 年部分所述29.2.1 调用独立服务(尽管实际上颠倒了该选项的含义):

尝试以下操作(括号中的替代命令)
/usr/sbin/in.ftpd -D
( /usr/sbin/in.wuftpd -s )
-D选项指示服务启动于守护进程模式(或独立模式)。这是运行互联网服务的第一种方式。

相关内容