最近在处理bug时,发现程序后台执行与前台执行速度出现差异,起初以为是进程调度的问题,后来发现是start-stop-daemon命令启动后台服务少加了-q参数。小小的一个问题耗费了大量的时候去排查,特记录如此。
当你上网去简单搜索start-stop-daemon常用命令,会搜索到如下结果:
-S/--start:启动一个守护进程。
-K/--stop:停止一个守护进程。
-R/--restart:重启一个守护进程。
-P/--pidfile <文件路径>:指定进程ID文件的路径,用于记录守护进程的PID。
-b/--background:以后台模式运行守护进程。
--make-pidfile:创建一个空的进程ID文件,即使守护进程没有正确生成PID时也会创建该文件。
--remove-pidfile:在停止或重启守护进程后删除PID文件。
--chdir <目录路径>:设置工作目录为指定的目录路径。
--exec <可执行程序> [<参数>]:指定要运行的可执行程序及其参数。
--user <用户名>[/UID]和--group <组名>[/GID]:以指定用户和组身份来运行守护进程。
--name <名称>:为守护进程设置一个自定义名称。
里面没有-q选项的介绍。完美“避坑”!
接着查资料,发现:
-q或--quiet选项是一种常见的命令行选项,用于指示程序仅在出现错误时显示信息。这意味着,如果程序正常运行并且没有遇到任何问题,它不会输出任何信息。但是,如果程序遇到错误或异常情况,它会显示相应的错误信息,以便用户了解发生了什么问题。
这种选项通常用于减少程序运行时的噪音,使其更易于使用。通过仅在必要时显示信息,用户可以更专注于程序的实际输出或结果,而不是被大量的常规信息所淹没。有时候还能提高程序运行速度。