start-stop-daemon启动多个进程

时间:2016-06-17 15:13:44

标签: linux bash

我正在尝试使用start-stop-daemon来启动在后台运行的进程。据我所知,start-stop-daemon应该阻止第二个进程启动(如果已经运行)。我现在运行的脚本非常简单:

#!/bin/sh
while true; do
    date > /home/pi/test/test.txt
    sleep 10
done

我正在使用start-stop-daemon --start -v -b -m --pidfile /var/run/test.pid --exec /home/pi/test/test.sh

启动脚本

我可以使用start-stop-daemon --stop -v --pidfile /var/run/test.pid

成功停止脚本

但是,如果我运行两次启动命令,它将启动两个进程,而不是只有一个我期望的进程。 start命令是否在启动进程之前检查pid文件,或者是否还需要做其他事情才能实现?

1 个答案:

答案 0 :(得分:3)

man page of start-stop-daemon包含有关使用 - exec 选项和脚本的特殊警告。

  

-x - exec 可执行文件

     

检查作为此可执行文件实例的进程。可执行文件   参数应该是绝对路径名。 注意: 这可能不起作用   打算用解释的脚本,因为可执行文件将指向   解释

运行脚本时,实际启动的进程是脚本的shebang行中注明的解释器。这会混淆 start-stop-daemon 实用程序。

顺便说一句,您可以使用 -t 选项通过 start-stop-daemon 调试此类问题。