Lo script di avvio non dovrebbe inizializzare o monitorare il replicaset; quelli dovrebbero essere compiti manuali.
Tieni presente che:
- l'avvio di un set di repliche è strettamente un lavoro una tantum; una volta avviato, il servizio MongoDB, una volta riavviato, continuerà a far parte dello stesso set di repliche.
- un set di repliche normalmente contiene diversi nodi che dovrebbero essere intercambiabili; se ognuno di loro tenta di inizializzare la replica impostata all'avvio, genereranno errori
- il riavvio di un servizio è un comportamento normale e previsto; ad esempio quando esegui l'aggiornamento alla versione successiva di MongoDB, o dopo che le patch all'host del tuo server richiedono un riavvio, o dopo un'interruzione di corrente
- se lo script tenta di inizializzare un set di repliche già inizializzato ogni volta che avvia il servizio MongoDB, genererà errori
Ti consiglio vivamente di apportare tre modifiche:
- Lascia che il tuo container mongo esegua mongo, senza i passaggi per avviare e monitorare il set di repliche.
- Se vuoi eseguire un set di repliche, avvialo con attenzione e in modo manuale controllato; idem se vuoi aggiungere/rimuovere nodi o riconfigurare.
- Se desideri monitorare lo stato del tuo set di repliche, utilizza uno strumento separato per farlo; lascia che il servizio mongo svolga il suo normale lavoro.