|
|
@@ -1,24 +1,32 @@
|
|
|
#!/bin/bash
|
|
|
-USERNAME=$(bin/tpsgi-hostname --user)
|
|
|
-echo "tCMS running as user $USERNAME"
|
|
|
-[[ -e run/tcms.pid ]] && sudo pkill -F run/tcms.pid
|
|
|
+HOMEDIR=$(git rev-parse --show-toplevel)
|
|
|
+[[ ! -z $HOMEDIR ]] && HOME=$HOMEDIR
|
|
|
+echo "Set HOME to $HOME"
|
|
|
+
|
|
|
+cd $HOME
|
|
|
+echo "Changed directory to $HOME"
|
|
|
+
|
|
|
+USERNAME=$(bin/tpsgi-config --user)
|
|
|
+[[ -z $USERNAME ]] && USERNAME=$USER
|
|
|
+echo "tPSGI running as user $USERNAME"
|
|
|
+
|
|
|
+[[ -e run/tpsgi.pid ]] && sudo pkill -F run/tpsgi.pid
|
|
|
source perl5/perlbrew/etc/bashrc
|
|
|
-PERL=$(sudo -u $USERNAME perlbrew exec which perl)
|
|
|
-STARMAN=$(sudo -u $USERNAME perlbrew exec which starman)
|
|
|
-sudo $PERL $STARMAN www/server.psgi --listen run/tcms.sock --workers 20 --user "$USERNAME" --daemonize --pid run/tcms.pid --chroot $(pwd)
|
|
|
+
|
|
|
+# We should obey the PATH set by this user, whose homedir is right here, ideally.
|
|
|
+PERL=$(sudo -i -u $USERNAME which perl)
|
|
|
+STARMAN=$(sudo -i -u $USERNAME which starman)
|
|
|
+sudo $PERL $STARMAN www/server.psgi --listen run/tpsgi.sock --workers 20 --user "$USERNAME" --daemonize --pid run/tpsgi.pid --chroot $(pwd)
|
|
|
|
|
|
# Wait until the socket file is ready
|
|
|
-until [ -e run/tcms.sock ]
|
|
|
+until [ -e run/tpsgi.sock ]
|
|
|
do
|
|
|
echo "Waiting for sock to be ready..."
|
|
|
sleep 1
|
|
|
done
|
|
|
|
|
|
# Fix ownership of socket so nginx can see it
|
|
|
-sudo chown $USERNAME:www-data run/tcms.sock
|
|
|
-sudo chmod 0770 run/tcms.sock
|
|
|
-
|
|
|
-echo "tCMS running as PID "`cat run/tcms.pid`
|
|
|
+sudo chown $USERNAME:www-data run/tpsgi.sock
|
|
|
+sudo chmod 0770 run/tpsgi.sock
|
|
|
|
|
|
-# TODO Run reloader process
|
|
|
-#$PERL bin/tcms_monitor
|
|
|
+echo "tPSGI running as PID "`cat run/tpsgi.pid`
|