tpsgi.sh 972 B

1234567891011121314151617181920212223242526272829303132
  1. #!/bin/bash
  2. HOMEDIR=$(git rev-parse --show-toplevel)
  3. [[ ! -z $HOMEDIR ]] && HOME=$HOMEDIR
  4. echo "Set HOME to $HOME"
  5. cd $HOME
  6. echo "Changed directory to $HOME"
  7. USERNAME=$(bin/tpsgi-config --user)
  8. [[ -z $USERNAME ]] && USERNAME=$USER
  9. echo "tPSGI running as user $USERNAME"
  10. [[ -e run/tpsgi.pid ]] && sudo pkill -F run/tpsgi.pid
  11. source perl5/perlbrew/etc/bashrc
  12. # We should obey the PATH set by this user, whose homedir is right here, ideally.
  13. PERL=$(sudo -i -u $USERNAME which perl)
  14. STARMAN=$(sudo -i -u $USERNAME which starman)
  15. sudo $PERL $STARMAN www/server.psgi --listen run/tpsgi.sock --workers 20 --user "$USERNAME" --daemonize --pid run/tpsgi.pid --chroot $(pwd)
  16. # Wait until the socket file is ready
  17. until [ -e run/tpsgi.sock ]
  18. do
  19. echo "Waiting for sock to be ready..."
  20. sleep 1
  21. done
  22. # Fix ownership of socket so nginx can see it
  23. sudo chown $USERNAME:www-data run/tpsgi.sock
  24. sudo chmod 0770 run/tpsgi.sock
  25. echo "tPSGI running as PID "`cat run/tpsgi.pid`