Я должен был внимательно прочитать страницу руководства. --make-pidfile
принимает аргументов, это флаг:
-m, --make-pidfile
Used when starting a program that does not create its own pid file. This option will make
start-stop-daemon create the file referenced with --pidfile and place the pid into it just before
executing the process. Note, the file will not be removed when stopping the program. NOTE: This
feature may not work in all cases. Most notably when the program being executed forks from its
main process. Because of this, it is usually only useful when combined with the --background
option.
Итак, если команда запускается как
$ sudo start-stop-daemon --start --pidfile /var/run/test.pid \
--make-pidfile /var/run/test.pid --user max --exec /bin/echo
Второе упоминание о /var/run/test.pid
не фиксируется никакими опциями и поэтому передается в качестве аргумента исполняемому файлу, вызываемому --exec
. Вот почему он печатается, когда ваш скрипт печатает его аргументы. Решение состоит в том, чтобы просто не давать никаких аргументов --make-pidfile
:
$ sudo start-stop-daemon --start --pidfile /var/run/test.pid \
--make-pidfile --user max --exec /bin/echo
Слава ОП, который решил это сам, но уже принял мой ответ.