2017-12-05 1 views
1

재시작 이전에 파이썬 플라스크가 반환되었습니다. 이유는 REST API를 사용하여 나무 딸기 파이를 재부팅하려고합니다.

내 REST API는 다음과 같이 python flask에 코딩 :

from flask import Flask 
from flask import jsonify 
import subprocess 

app = Flask(__name__) 

@app.route('/api/reboot') 
def reboot(): 
    subprocess.call("/sbin/reboot") 
    return jsonify(triggered='reboot') 

if __name__ == '__main__': 
    app.run(debug=True,host="0.0.0.0") 

코드가 완벽하게 잘 작동한다. 그러나 재부팅으로 인해 시스템이 재부팅 중이므로 반품은 전송되지 않습니다.

실제 재부팅 전에 몇 가지 값 (제 경우에는 사용자 정의 'ack')을 반환 할 수있는 몇 밀리 초의 지연으로 비동기를 재시작하는 방법이 있습니까?

답변

1

threading.Timer보십시오 :

from flask import Flask 
from flask import jsonify 
import subprocess 
import threading 

app = Flask(__name__) 

def _reboot(): 
    subprocess.call("/sbin/reboot") 

@app.route('/api/reboot') 
def reboot(): 
    t = threading.Timer(1, _reboot) 
    t.start() 
    return jsonify(triggered='reboot') 

if __name__ == '__main__': 
    app.run(debug=True,host="0.0.0.0") 
+2

이 내 시스템을 다시 부팅 할 것이다, 그래서 (내가 지금 재부팅 할 수 없습니다) 테스트하기 위해 몇 가지 설정 시간이 필요합니다 :) 꽤 매력적인 작동 – iLoveTux

+0

: 예를 들어

user1234

관련 문제