I recently was playing around with CRITs and followed their installation instructions closely (VERY HARD). They could use some better install scripts to make things smoothly, but what do you expect from a community project.
Anyways, I see in their documentation when it gets to the MongoDB section how to start it at the command line. Getting past that worked well… but i’m wanting to setup a production style instance which requires the database to start automatically on startup. Apache (which runs the CRITs UI starts automaticaly by default) but their instance of MongoDB does not. So i submitted a ticket… which quickly got squashed as “not their problem”. While I agree this is not their problem, they do want people to use their product, right? A few bits of documentation on here’s a link to starting MongoDB automatically would have been helpful. Well… I submit this as that link…
Create /etc/init.d/mongodb with the following info:
#!/bin/sh ### BEGIN INIT INFO # Provides: mongodb # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: MongoDB ### END INIT INFO # Change the next 3 lines to suit where you install your script and what you want to call it DIR=/usr/local/bin DAEMON=$DIR/mongod DAEMON_NAME=mongod # Add any command line options for your daemon here DAEMON_OPTS="--fork --logpath /var/log/mongodb.log --logappend --nohttpinterface" # This next line determines what user the script runs as. # Root generally not recommended but necessary if you are using the Raspberry Pi GPIO from Python. DAEMON_USER=root # The process ID of the script when it runs is stored here: PIDFILE=/var/run/$DAEMON_NAME.pid . /lib/lsb/init-functions do_start () { log_daemon_msg "Starting system $DAEMON_NAME daemon" echo 0 > /proc/sys/vm/zone_reclaim_mode start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user $DAEMON_USER --chuid $DAEMON_USER --startas $DAEMON -- $DAEMON_OPTS log_end_msg $? } do_stop () { log_daemon_msg "Stopping system $DAEMON_NAME daemon" start-stop-daemon --stop --pidfile $PIDFILE --retry 10 log_end_msg $? } case "$1" in start|stop) do_${1} ;; restart|reload|force-reload) do_stop do_start ;; status) status_of_proc "$DAEMON_NAME" "$DAEMON" && exit 0 || exit $? ;; *) echo "Usage: /etc/init.d/$DAEMON_NAME {start|stop|restart|status}" exit 1 ;; esac exit 0
Change /etc/init.d/mongodb to executable:
sudo chmod +x /etc/init.d/mongodb
and configure it for startup:
sudo update-rc.d mongodb defaults
Now your MongoDB instance that is spoken to in the CRITs documentation will start automatically on boot.