Skip to content

Instantly share code, notes, and snippets.

@lamberta
Created February 1, 2015 08:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lamberta/80a4f49ebb7b07a8f9dc to your computer and use it in GitHub Desktop.
Save lamberta/80a4f49ebb7b07a8f9dc to your computer and use it in GitHub Desktop.
#!/bin/sh
# PROVIDE: www
# REQUIRE: LOGIN FILESYSTEMS
# KEYWORD: shutdown
. /etc/rc.subr
name="www"
rcvar="${name}_enable"
load_rc_config "${name}"
run_dir="/var/run/${name}"
pidfile="${run_dir}/${name}.pid"
log_dir="/var/log/${name}"
user="www_daemon"
app="/mnt/www/main.js"
pm2="/usr/local/bin/node /usr/local/bin/pm2"
pm2_start_args="-s --name ${name} --pid ${pidfile} --log ${log_dir}/pm2.log --output /dev/null --error ${log_dir}/pm2-err.log"
extra_commands="status"
start_cmd="${name}_start"
stop_cmd="${name}_stop"
restart_cmd="${name}_restart"
status_cmd="${name}_status"
PATH="$PATH:/usr/local/bin"
www_start () {
if env PM2_HOME="${run_dir}/pm2" \
su -m "${user}" -c "${pm2} start ${app} ${pm2_start_args}"; then
echo "Starting ${name}."
else
warn "Problem starting ${name}."
fi
}
www_stop () {
if env PM2_HOME="${run_dir}/pm2" \
su -m "${user}" -c "${pm2} stop ${name} -s"; then
echo "Stopping ${name}."
su -m "${user}" -c "${pm2} kill -s"
else
warn "Problem stopping ${name}."
fi
}
www_restart () {
if env PM2_HOME="${run_dir}/pm2" \
su -m "${user}" -c "${pm2} restart ${name} -s"; then
echo "[PM2] Restarting ${name}."
else
warn "Problem restarting ${name}."
fi
}
www_status () {
if ! env PM2_HOME="${run_dir}/pm2" \
su -m "${user}" -c "${pm2} describe ${name} --no-color"; then
#pm2 is automatically launched on query, kill it if not using
su -m "${user}" -c "${pm2} kill -s"
fi
}
run_rc_command "$1"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment