在固定的人一個網站,我碰到以下問題:PHP會話文件僵局
爲了處理一些數據,它調用exec("/usr/bin/php /path/to/file.php input.dat")
,而被稱爲file.php
包含include("config.php")
,其中,反過來,包含致電session_start()
。
發生的問題是等待flock("/tmp/sess_XXXXXX")
的死鎖。父腳本鎖定會話文件,然後exec
'ed腳本嘗試繼續相同的會話,再次鎖定該文件,但得到死鎖等待它。
我試圖把以下在該exec
「ed腳本的開始,但無濟於事:
session_save_path("/tmp/alt_session");
session_id("NOTHING");
Obivously有一些明顯荒謬的有關從PHP腳本中調用exec("php ...")
,但這是另一天的爭論,而不是我可以在這裏改變的東西。另外,雖然我可以自由更改在exec
下運行的文件,但更改config.php
會產生一些我更喜歡避免的麻煩。
任何其他選項,還是我錯過了重要的東西?
你需要在父腳本開了一個會議?如果不行 - 你可以在用exec調用子進程之前調用session_write_close() – zerkms