Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php会话文件死锁_Php_Linux_Deadlock - Fatal编程技术网

php会话文件死锁

php会话文件死锁,php,linux,deadlock,Php,Linux,Deadlock,在为某人修复网站时,我遇到了以下问题: 为了处理一些数据,它调用exec(“/usr/bin/php/path/to/file.php input.dat”),而被调用的file.php包含一个include(“config.php”),该函数又包含对会话启动()的调用 出现的问题是死锁等待flock(“/tmp/sess\uuuuxxxxxx”)。父脚本锁定会话文件,然后执行的脚本尝试继续相同的会话,再次锁定该文件,但在等待该文件时陷入死锁 我试着在exec“ed脚本的开头添加以下内容,但并没

在为某人修复网站时,我遇到了以下问题:

为了处理一些数据,它调用
exec(“/usr/bin/php/path/to/file.php input.dat”)
,而被调用的
file.php
包含一个
include(“config.php”)
,该函数又包含对
会话启动()的调用

出现的问题是死锁等待
flock(“/tmp/sess\uuuuxxxxxx”)
。父脚本锁定会话文件,然后执行的脚本尝试继续相同的会话,再次锁定该文件,但在等待该文件时陷入死锁

我试着在
exec
“ed脚本的开头添加以下内容,但并没有效果:

session_save_path("/tmp/alt_session");
session_id("NOTHING");
显然,在php脚本中调用
exec(“php…”)
显然有些荒谬,但这是另一天的论据,我不能在这里更改。另外,虽然我可以随意更改在
exec
下运行的文件,但更改
config.php
会产生一些我更愿意避免的其他问题

还有其他选择吗,还是我遗漏了一些重要的东西?


简言之,解决方案是在
文件获取内容()之前运行
会话写入关闭()
,(在您的情况下是
exec()

是否需要在父脚本中打开会话?如果否-您可以在使用
exec调用child之前
session\u write\u close()