开始脚本:使用 $!创建 pidfile - 偶尔返回错误的 pid(差一)

开始脚本:使用 $!创建 pidfile - 偶尔返回错误的 pid(差一)

我们有 3 个 Redis 实例在测试服务器上运行。由于某种原因,我们启动 redis 的启动脚本可能会将错误的 pid 写入文件。这是它正在做的事情:

su redis -c "redis-server /redis.conf & echo \$! > /var/run/redis_6379"

如果我将redis_6379 start && redis_6380 start && redis_6381start 链接在一起,然后像那样停止它们并像那样启动它们,那么在 10 或 15 次迭代之后,我会在启动文件中遇到一个 pid 关闭了 1 的情况。

有谁知道为什么会发生这种情况?

答案1

是否有可能redis-server分叉,并且您从中获取的 PID$!是父 PID,但您实际上对子 PID 感兴趣?

相关内容