在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP/ 怎樣防止php網(wǎng)頁的處理進程在頁面關閉后被中途kill掉?

怎樣防止php網(wǎng)頁的處理進程在頁面關閉后被中途kill掉?

做了一個php頁面調(diào)用shell腳本執(zhí)行相關操作。
shell腳本執(zhí)行時間比較長(1-2分鐘)且不能被同時調(diào)用。

為了防止不同人在不同地方用php頁面同時調(diào)用shell腳本。所以在調(diào)用shell腳本前用php做了一個文件鎖,在shell腳本執(zhí)行完成之后解鎖。

但是若用戶點擊php頁面后馬上又關閉,可能造成以下問題:文件被鎖之后,shell腳本還未執(zhí)行完,php處理進程就被kill掉了,然后文件未被解鎖,php頁面無法在調(diào)用shell腳本。

這樣才能防止以上的php進程被kill掉,從而保證上鎖的文件最后被解鎖。

回答
編輯回答
使勁操

php.ini

ignore_user_abort boolean
默認值為 FALSE 。 如果設置為 TRUE ,在客戶端斷開連接后,腳本不會被中止。
http://php.net/manual/zh/misc...

function

int ignore_user_abort ([ bool $value ] )
設置客戶端斷開連接時是否中斷腳本的執(zhí)行

http://www.php.net/manual/zh/...

2017年8月11日 03:18
編輯回答
夢若殤

你在瀏覽器上關閉頁面應該不會影響你的PHP進程啊。

PHP腳本調(diào)用shell一般是要阻塞的,如果頁面被返回(響應到了客戶端),php就已經(jīng)完成了請求的處理,php腳本執(zhí)行到了exit或者結(jié)尾。如果shell不阻塞的話,貌似也會放鎖。

如果說用戶請求php,但是沒有等到響應就關閉,也應該不會影響到服務端PHP的執(zhí)行。如果你發(fā)現(xiàn)文件鎖解不掉就只能靠try...catch...finally了

2017年5月22日 05:39