Set up a production environment
Use this guide to set up and manage a production-level full JMES node.
Create a dedicated user
Although jmesd does not require a super user account, during the setup process you'll need super user permissions to create and modify some files. It is strongly recommended to use a normal user when running jmesd.
Increase limit of file descriptors per process
Linux systems set the maximum number of file descriptors that a process may open to 1024 by default. It is recommended that you increase this amount.
Modify /etc/security/limits.conf* to increase the amount, where nofile is the number of files a process may open at a time.
_5# If you have never changed this system config or your system is fresh, most of this file will be commented_5# ..._5*                soft    nofile          65535   # Uncomment the following two lines at the bottom_5*                hard    nofile          65535   # Change the default values to ~65535_5# ...
Run the server as a daemon
jmesd must be running at all times. It is recommended that you register jmesd as a systemd service so that it will be started automatically when the system reboots.
Register jmesd as a service
- 
Create a service definition file in
/etc/systemd/system/jmesd.service.Example:
_15[Unit]_15Description=JMES Daemon_15After=network.target_15_15[Service]_15Type=simple_15User=<JMES_USER>_15ExecStart=<PATH_TO_JMESD>/jmesd start_15Restart=on-abort_15_15[Install]_15WantedBy=multi-user.target_15_15[Service]_15LimitNOFILE=65535 - 
Modify the
Servicesection according to your environment:- Enter the user (likely your username, unless you created a user specifically for jmesd).
 - Enter the path to the jmesd executable. 
<PATH_TO_JMESD>is likely/home/<YOUR_USER>/go/bin/jmesdor/usr/go/bin. Confirm this withwhereis jmesd. - Make sure you made the correct edits to 
/etc/security/limits.conf. 
 - 
Run
systemctl daemon-reloadfollowed bysystemctl enable jmesd. This will register jmesd as a system service and run the program upon startup. 
Controlling the service
Use systemctl to start, stop, and restart the service. Note: Only do this after you've fully configured your node
_8# Check health_8systemctl status jmesd_8# Start_8systemctl start jmesd_8# Stop_8systemctl stop jmesd_8# Restart_8systemctl restart jmesd
Access logs
Use journalctl -t to access entire logs, entire logs in reverse, and the latest and continuous log.
_6# Entire log reversed_6journalctl -t jmesd -r_6# Entire log_6journalctl -t jmesd_6# Latest and continuous_6journalctl -t jmesd -f