開始腳本:使用 $!建立 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 感興趣?

相關內容