def startRoom(request): if not request.user.is_staff: return HttpResponseForbidden() try: roomid = request.GET['roomid'] timer = request.GET['time'] except: return HttpResponseBadRequest() cmd = f'python3 plug-ins/goldennum.py "{secret_key.secret_key}" {roomid} {timer}' cmd_run = f'nohup {cmd} > tmp/logs/{roomid}.out 2>&1' if sys.platform == "win32": cmd_run = f'start /b {cmd_run}' else: cmd_run = f'{cmd_run} &' rooms = Room.objects.filter(roomid=roomid) if not rooms: newRoom = Room() newRoom.status = "on" newRoom.roomid = roomid newRoom.time = timer newRoom.cmd = cmd.replace('"', '') newRoom.lastTime = str(int(time.time())) newRoom.history = json.dumps({ "goldenNums": [], "userActs": {} }) newRoom.save() os.makedirs("./tmp/logs", exist_ok=True) os.system(cmd_run) return HttpResponse("Room started new") else: room = rooms[0] # flag = os.system('ps axu | grep "' + room.cmd +'" | grep -v "grep" | wc -l') # print(json.dumps(flag)) if room.status != "on": room.status = "on" room.time = timer room.cmd = cmd.replace('"', '') room.lastTime = str(int(time.time())) room.save() os.makedirs("./tmp/logs", exist_ok=True) os.system(cmd_run) return HttpResponse("Room restarted") else: return HttpResponse("Room have started")