mirror of
https://github.com/cytopia/devilbox.git
synced 2024-12-29 09:08:51 +00:00
47 lines
1.4 KiB
Bash
Executable File
47 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# This is a generic example to startup your NodeJS projects with
|
|
# pm2 (https://github.com/Unitech/pm2)
|
|
#
|
|
# Important: As everything is run by the root user, you must explicitly direct the
|
|
# commands to the devilbox user.
|
|
#
|
|
|
|
|
|
|
|
# Add the full paths of your Nodejs projects startup files into this array
|
|
# Each project separated by a newline and enclosed in double quotes. (No commas!)
|
|
# Paths are internal paths inside the PHP container.
|
|
NODE_PROJECTS=(
|
|
#"/shared/httpd/my-rhost/js/index.js"
|
|
#"/shared/httpd/my-node-hello-world/name/run.js"
|
|
#"/shared/httpd/another-node-project/javascript/run.js"
|
|
)
|
|
|
|
|
|
# Check if any projects have been defined
|
|
if [ ${#NODE_PROJECTS[@]} -eq 0 ]; then
|
|
echo "No projects defined. Exiting."
|
|
exit 0
|
|
fi
|
|
|
|
|
|
# This loops over the paths, separates base directory and filename and will run it in the background
|
|
# as the user devilbox. There shouldn't be any need to change anything here.
|
|
for item in ${NODE_PROJECTS[*]}; do
|
|
NODE_PATH="$( dirname "${item}" )"
|
|
NODE_FILE="$( basename "${item}" )"
|
|
|
|
if [ ! -d "${NODE_PATH}" ]; then
|
|
>&2 echo "[Warning], skipping startup, directory does not exist: ${NODE_PATH}"
|
|
continue;
|
|
fi
|
|
if [ ! -f "${NODE_PATH}/${NODE_FILE}" ]; then
|
|
>&2 echo "[Warning], skipping startup, file does not exist: ${NODE_PATH}/${NODE_FILE}"
|
|
continue;
|
|
fi
|
|
|
|
echo "su -c \"cd ${NODE_PATH}; pm2 start ${NODE_FILE}\" -l devilbox"
|
|
su -c "cd ${NODE_PATH}; pm2 start ${NODE_FILE}" -l devilbox
|
|
done
|