该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
答案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
选项指示服务启动于守护进程模式(或独立模式)。这是运行互联网服务的第一种方式。