setup.py 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. import subprocess
  2. import sys
  3. import setup_util
  4. from os.path import expanduser
  5. import os
  6. import getpass
  7. home = expanduser("~")
  8. def start(args, logfile, errfile):
  9. setup_util.replace_text("mojolicious/app.pl", "localhost", ""+ args.database_host +"")
  10. setup_util.replace_text("mojolicious/nginx.conf", "USR", getpass.getuser())
  11. setup_util.replace_text("mojolicious/nginx.conf", "server unix:.*\/FrameworkBenchmarks", "server unix:" + home + "/FrameworkBenchmarks")
  12. try:
  13. subprocess.Popen("plackup -E production -s Starman --workers=" + str(args.max_threads) + " -l " + home + "/FrameworkBenchmarks/mojolicious/frameworks-benchmark.sock -a ./app.pl", shell=True, cwd="mojolicious", stderr=errfile, stdout=logfile)
  14. subprocess.check_call("sudo /usr/local/nginx/sbin/nginx -c " + home + "/FrameworkBenchmarks/mojolicious/nginx.conf", shell=True, stderr=errfile, stdout=logfile)
  15. return 0
  16. except subprocess.CalledProcessError:
  17. return 1
  18. def stop(logfile, errfile):
  19. try:
  20. subprocess.call("sudo /usr/local/nginx/sbin/nginx -s stop", shell=True, stderr=errfile, stdout=logfile)
  21. p = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE)
  22. out, err = p.communicate()
  23. for line in out.splitlines():
  24. if 'starman' in line:
  25. pid = int(line.split(None, 2)[1])
  26. os.kill(pid, 15)
  27. return 0
  28. except subprocess.CalledProcessError:
  29. return 1