在Linux上编写PID文件

时间:2011-03-18 16:58:58

标签: c linux centos daemon

我目前正在开发一个需要单实例的linux守护进程(即限制为1个用户1进程)。在不必使用getpid()手动将pid输出到 / var / run / 然后使用flock()锁定它的最佳方法是什么?

5 个答案:

答案 0 :(得分:3)

使用start-stop-daemon包装启动和关闭。

答案 1 :(得分:1)

只需使用libunique即可。这是最简单的方法。

答案 2 :(得分:1)

我在我编写的几个initd脚本中使用了类似的东西。将COMMAND替换为您需要的任何内容

PIDFILE=/var/run/service.pid
COMMAND="java -jar start.jar"
$COMMAND > /dev/null 2>&1 &
echo $! > $PIDFILE

编辑@dogane的建议,也进行了测试。

答案 3 :(得分:1)

只需锁定可执行文件本身。

答案 4 :(得分:0)

如果您确实无法拥有锁定文件,请改用套接字。另一个实例将无法启动,因为该地址已经在使用中。