Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. from multiprocessing import Process
  2. from time import sleep
  3.  
  4. import psutil
  5. from flask import Flask, redirect, session, url_for
  6.  
  7.  
  8. app = Flask(__name__)
  9. app.secret_key = 'fxa9x85xf0xe9x982xc4xf8xa0kx91xa7xefx12y'
  10.  
  11.  
  12. @app.route('/')
  13. def index():
  14. return (
  15. '<form action="/work/start" method="POST">'
  16. '<input type="submit" value="Start">'
  17. '</form>'
  18. '<form action="/work/stop" method="POST">'
  19. '<input type="submit" value="Stop">'
  20. '</form>'
  21. )
  22.  
  23.  
  24. def work_it():
  25. while True:
  26. print('working...')
  27. sleep(1)
  28.  
  29. @app.route('/work/start', methods=['POST'])
  30. def start_work():
  31. if 'work_process' not in session:
  32. process = Process(target=work_it)
  33. process.start()
  34. pid = process.pid
  35. parent_pid = psutil.Process(process.pid).parent().pid
  36. session['work_process'] = (parent_pid, pid)
  37. return redirect(url_for('index'))
  38.  
  39.  
  40. @app.route('/work/stop', methods=['POST'])
  41. def stop_work():
  42. if 'work_process' in session:
  43. parent_pid, pid = session['work_process']
  44. try:
  45. process = psutil.Process(pid)
  46. if process.parent().pid == parent_pid:
  47. process.terminate()
  48. except psutil.NoSuchProcess:
  49. pass
  50. session.pop('work_process')
  51. return redirect(url_for('index'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement