Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from multiprocessing import Process
- from time import sleep
- import psutil
- from flask import Flask, redirect, session, url_for
- app = Flask(__name__)
- app.secret_key = 'fxa9x85xf0xe9x982xc4xf8xa0kx91xa7xefx12y'
- @app.route('/')
- def index():
- return (
- '<form action="/work/start" method="POST">'
- '<input type="submit" value="Start">'
- '</form>'
- '<form action="/work/stop" method="POST">'
- '<input type="submit" value="Stop">'
- '</form>'
- )
- def work_it():
- while True:
- print('working...')
- sleep(1)
- @app.route('/work/start', methods=['POST'])
- def start_work():
- if 'work_process' not in session:
- process = Process(target=work_it)
- process.start()
- pid = process.pid
- parent_pid = psutil.Process(process.pid).parent().pid
- session['work_process'] = (parent_pid, pid)
- return redirect(url_for('index'))
- @app.route('/work/stop', methods=['POST'])
- def stop_work():
- if 'work_process' in session:
- parent_pid, pid = session['work_process']
- try:
- process = psutil.Process(pid)
- if process.parent().pid == parent_pid:
- process.terminate()
- except psutil.NoSuchProcess:
- pass
- session.pop('work_process')
- return redirect(url_for('index'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement