Startscript: Verwenden von $! zum Erstellen einer PID-Datei – gibt gelegentlich eine falsche PID zurück (um eins abweichend)

Startscript: Verwenden von $! zum Erstellen einer PID-Datei – gibt gelegentlich eine falsche PID zurück (um eins abweichend)

Wir haben 3 Instanzen von Redis auf einem Testserver laufen. Aus irgendeinem Grund kann unser Startskript, das Redis startet, die falsche PID in eine Datei schreiben. Folgendes passiert:

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

redis_6379 start && redis_6380 start && redis_6381Wenn ich „Start“ und „Stopp“ auf diese Weise verkette und dann wieder auf diese Weise starte, stoße ich nach 10 oder 15 Iterationen auf eine PID in der Startdatei, die um 1 abweicht.

Weiß jemand, warum das passieren kann?

Antwort1

Ist es möglich, dass es zu redis-servereiner Aufspaltung kommt und dass die PID, die Sie erhalten, $!die übergeordnete PID ist, Sie sich aber eigentlich für die untergeordnete PID interessieren?

verwandte Informationen