Chiunque abbia aggiornato o installato Ubuntu 16.04 (noto anche come Ubuntu Xenial xerus) ha notato che alcuni dei vecchi servizi hanno smesso di funzionare. Questo problema è noto dalla versione 15.04 ma mi concentrerò sulla versione precedente.
Questo è stato il mio caso con MongoDB. Per fare una lunga storia, in breve, Ubuntu è passato da upstart a systemd. Una soluzione comune, a questi problemi, è tornare a parvenu. Non considero questa opzione una vera soluzione, non certo a lungo termine.
Una vera soluzione ( IMHO ) al problema è scrivere uno script systemd che avvierà MongodDB. Sfortunatamente i ragazzi di MongoDB dovevano ancora fornirne uno.
Quindi ho dovuto scriverne uno da zero. Per crearne uno personalizzato, segui questi passaggi:
- passa a root usando
sudo su
oppure usa sudo per tutti i seguenti passaggi.
-
crea uno script di servizio (in questo esempio il nome del servizio è Mongodb)
nano /lib/systemd/system/mongodb.service
-
Il contenuto del file dovrebbe essere
[Unit] Description=MongoDB Database Service Wants=network.target After=network.target [Service] ExecStart=/usr/bin/mongod --config /etc/mongod.conf ExecReload=/bin/kill -HUP $MAINPID Restart=always User=mongodb Group=mongodb StandardOutput=syslog StandardError=syslog [Install] WantedBy=multi-user.target
Puoi anche scaricare il file da qui:mongodb.service
Ecco una breve descrizione dei campi importanti:
ExecStart - È il comando da eseguire. Mongo si installa in /usr/bin e il file di configurazione viene scritto in /etc
Utente - L'uid del processo mongod.
Gruppo - Il gid del processo mongod. Si noti che l'utente e il gruppo vengono creati dall'installazione.
Ora per iniziare mongodb:
sudo systemctl start mongodb
Per interrompere l'uso del servizio mongodb:
sudo systemctl stop mongodb
Per abilitare mongodb all'avvio
sudo systemctl enable mongodb.service
Se hai bisogno di aggiornare i servizi usa:
sudo systemctl daemon-reload