[英]Setting Connection to “close” in Sinatra
我有這個簡單的sinatra網絡應用程序:
require 'sinatra'
get '/' do
"Success."
end
get '/app' do
"done"
response["Connection"] = "Close"
`sudo pkill blink`
`gpio write 0 0`
`sudo ./blink #{params["func"]}`
end
./blink
是一個永遠運行的程序,不會終止,因此,當我在瀏覽器中訪問http://127.0.0.1/app?func=2
時,我只會看到一個加載循環,並且"done"
未顯示為結果,但是我試圖在/app
塊中運行的/app
正在運行。
我以為可能將Connection
標頭設置為Close
可以解決問題,但是使用上面的代碼(我認為可以設置標頭),仍然將Connection
標頭設置為Keep-Alive
有什么幫助嗎? 謝謝!
引用此SO問題在Ruby中生成了一個后台進程,並在@andrykonchin的幫助下,我能夠使用以下命令解決我的問題:
pid = fork do
`sudo ./blink #{params["func"]}`
end
Process.detach(pid)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.