É possível que redis-server forks e que o PID obtido de $! seja o PID pai, mas você está realmente interessado no PID filho?
Temos 3 instâncias de redis em execução em um servidor de teste. Por alguma razão, nosso script de início que inicia o redis pode escrever o pid errado em um arquivo. Aqui está o que está fazendo:
su redis -c "redis-server /redis.conf & echo \$! > /var/run/redis_6379"
Se eu encadear redis_6379 start && redis_6380 start && redis_6381 start
e então eu paro eles assim e os inicio assim, depois de 10 ou 15 iterações eu encontrarei um pid no arquivo inicial que está desligado por 1.
Alguém sabe por que isso pode ocorrer?
Tags daemon shell-script rhel pidfile