Startscript: использование $! для создания pidfile - иногда возвращается неправильный pid (отклоняется на единицу)

Startscript: использование $! для создания 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_6381запуск, а затем остановлю их таким образом и запущу таким образом, то после 10 или 15 итераций я обнаружу в файле запуска pid, который будет отличаться на 1.

Кто-нибудь знает, почему это может произойти?

решение1

Возможно ли, что происходит redis-serverразветвление, и полученный вами PID $!является родительским PID, но на самом деле вас интересует дочерний PID?

Связанный контент