Skip to content

Instantly share code, notes, and snippets.

@ba1dr
Created March 19, 2018 22:25
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ba1dr/880518177d1260e720f5e30dfbe36fab to your computer and use it in GitHub Desktop.
Save ba1dr/880518177d1260e720f5e30dfbe36fab to your computer and use it in GitHub Desktop.
#!/bin/bash
CUR_DIR=$(dirname $(readlink -f $0))
WORK_DIR=$CUR_DIR
PROJ_NAME=myservice
PROJ_USER=myusr
VENV=$(dirname $WORK_DIR)/venv
PYTHON=$VENV/bin/python
CELERY=$VENV/bin/celery
GUNICORN=$VENV/bin/gunicorn
LOGDIR=/var/log/myservice
LOGLEVEL=INFO
# LOGLEVEL=DEBUG
MAIN_WORKERS=3
# init sudo
sudo echo "" > /dev/null
cmd=$1; ! [ -z "$cmd" ] && shift
param1=$1; ! [ -z "$param1" ] && shift
case $cmd in
start)
sudo systemctl daemon-reload
sudo chown -R $PROJ_USER: $WORK_DIR
sudo -i -u $PROJ_USER sh -c "cd $WORK_DIR; $PYTHON $WORK_DIR/manage.py collectstatic --noinput"
sudo systemctl start my-web.service
sudo systemctl start my-tasks-main.service
sudo service nginx restart
;;
stop)
sudo systemctl daemon-reload
sudo systemctl stop my-web.service
sudo systemctl stop my-tasks-main.service
;;
reload)
echo "Reload WEB only"
ps ax | grep gunicorn | grep -v grep | grep -v sudo | awk '{print $1}' | xargs -r sudo kill -s HUP
# ps ax | grep celery | grep -v grep | grep -v sudo | awk '{print $1}' | xargs -r sudo kill -s HUP
sudo service nginx reload
;;
command)
sudo -i -u $PROJ_USER sh -c "cd $WORK_DIR; $PYTHON manage.py $param1 $*"
;;
migrate)
if [ "$param1" = "all" ]; then
sudo -i -u $PROJ_USER sh -c "cd $WORK_DIR; $PYTHON $WORK_DIR/manage.py migrate --database default $*"
sudo -i -u $PROJ_USER sh -c "cd $WORK_DIR; $PYTHON $WORK_DIR/manage.py migrate --database db1 $*"
else
sudo -i -u $PROJ_USER sh -c "cd $WORK_DIR; $PYTHON $WORK_DIR/manage.py migrate $param1 $*"
fi
;;
celery)
sudo -i -u $PROJ_USER sh -c "cd $WORK_DIR; $CELERY -A $PROJ_NAME.settings.celery_settings $param1 $*"
;;
debug)
sudo -i -u $PROJ_USER sh -c "cd $WORK_DIR; $PYTHON $WORK_DIR/manage.py shell_plus $param1 $*"
;;
*)
echo "ERROR, wrong parameter"
exit 1
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment