= EMEN2 control script (emen2ctl) = Similar to Apache's "apachectl" script, EMEN2 includes an "emen2ctl" script. This can be used to start and stop the server and perform some basic administration tasks. = Running emen2ctl = '''Note:''' Depending on how you installed EMEN2, emen2ctl may not be in your $PATH. On Linux, using the recommended installation, it will probably be $HOME/Python/bin/emen2ctl. You can either invoke the script using the full path, or add the directory to your path. emen2ctl accepts a single command argument and options after that: {{{ bash$ emen2ctl Usage: /usr/local/bin/emen2ctl {start|stop|restart|recover} [options] }}} The following commands are defined: * start: Start the EMEN2 web server * stop: Stop the EMEN2 web server * restart: Restart the EMEN2 web server * recover: Run database recovery emen2ctl also requires an EMEN2 database environment. This may be set using either the "-h" option (e.g. "-h $HOME/test.db") or by setting the $EMEN2DBHOME environment variable. All emen2ctl options will be passed to the EMEN2 server. These will usually be used when starting the server: -e to load extensions, and --port to specify a port. '''Note:''' In the future, the extensions to be loaded will be stored in the configuration file and editable using the web interface instead of the "-e" option. For now, specify them on the command line with "-e". = Start the EMEN2 web server = The "start" command will start the EMEN2 web server. In this example, we pass a database environment with "-h" and bind the server to port 8080 (default) with "--port". {{{ bash$ emen2ctl start -h ~/test.db --port 8080 Starting emen2 [INFO] Web server started }}} This will create a "pid" file in the database environment (in this example, /Users/irees/test.db/log/emen2.pid). This file will be used to communicate with the server process later. = Stop the EMEN2 web server = Similarly, the "stop" command will attempt to gracefully stop the EMEN2 web server: {{{ bash$ emen2ctl stop -h ~/test.db Stopping emen2 [process 30821] }}} = Restart the EMEN2 web server = Similar to "start." This will stop the current server process, then restart. {{{ bash$ emen2ctl restart -h ~/test.db Stopping emen2 [process 30821] Starting emen2 Removing stale pidfile /Users/irees/test.db/log/emen2.pid [INFO] Web server started }}} = Run database recovery = If the server or EMEN2 crashes, you will want to run database recovery before restarting. This will clean the underlying Berkeley DB environment, and abort any transactions that were uncommitted. {{{ bash$ emen2ctl recover -h ~/test.db Running emen2 database recovery BDB2526 Finding last valid log LSN: file: 1 offset 650860 BDB1514 Recovery starting from [1][622364] BDB1518 Recovery complete at Mon Mar 12 05:14:18 2012 BDB1519 Maximum transaction ID 80000075 recovery checkpoint [1][653815] }}}