2011-07-02 44 views
3

在固定的人一個網站,我碰到以下問題: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會產生一些我更喜歡避免的麻煩。

任何其他選項,還是我錯過了重要的東西?

+1

你需要在父腳本開了一個會議?如果不行 - 你可以在用exec調用子進程之前調用session_write_close() – zerkms

回答