簡體   English   中英

在Sinatra中將“連接”設置為“關閉”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM