فهرست منبع

improve service file somewhat, add log warning scanner

George Baugh 1 سال پیش
والد
کامیت
37d52a8a12
3فایلهای تغییر یافته به همراه25 افزوده شده و 1 حذف شده
  1. 3 1
      bin/build_service
  2. 21 0
      bin/scan_log_for_warnings.sh
  3. 1 0
      service/tpsgi.tmpl

+ 3 - 1
bin/build_service

@@ -3,7 +3,9 @@
 DOMAIN=$1
 REPLACEME=$(dirname $0)/..
 REPLACEME=$(readlink -f $REPLACEME)
+# Make sure we start it with the *right* perl
+PERL5BIN=$(perl -V:scriptdir | sed -e "s/^scriptdir=//g;s/[';]//g")
 
-sed -e "s|__REPLACEME__|$REPLACEME|g" $REPLACEME/service/tpsgi.tmpl > $REPLACEME/service/tpsgi.service.intermediate
+sed -e "s|__REPLACEME__|$REPLACEME|g;s|__PERL5BIN__|$PERL5BIN|g" $REPLACEME/service/tpsgi.tmpl > $REPLACEME/service/tpsgi.service.intermediate
 sed -e "s|__DOMAIN__|$DOMAIN|g" $REPLACEME/service/tpsgi.service.intermediate > $REPLACEME/service/tpsgi.service
 rm $REPLACEME/service/tpsgi.service.intermediate

+ 21 - 0
bin/scan_log_for_warnings.sh

@@ -0,0 +1,21 @@
+#!/bin/sh
+
+LOG=$(tpsgi-config --custom_log)
+
+if [ -f $LOG ]
+then
+    grep 'starman:' $LOG
+
+touch warnings.log
+FSZ=$(stat --printf "%s" warnings.log)
+grep -oP 'starman:\s+.*' $LOG >> warnings.log
+echo "$(sort < warnings.log | uniq)" > warnings.log
+NEWSZ=$(stat --printf "%s" warnings.log)
+
+if [ $FSZ != $NEWSZ ]
+then
+    echo "New warning from tPSGI, investigate $LOG!"
+    cat warnings.log
+fi
+
+fi

+ 1 - 0
service/tpsgi.tmpl

@@ -9,6 +9,7 @@ WantedBy=multi-user.target
 [Service]
 Type=forking
 PIDFile=__REPLACEME__/run/tpsgi.pid
+Environment=PATH='__PERL5BIN__'
 ExecStart=__REPLACEME__/service/tpsgi.sh
 WorkingDirectory=__REPLACEME__/
 Restart=always