我有一个使用共享内存的父子进程。 孩子将数据放入共享内存大约每秒10次。 父母和孩子在写/读时使用信号量来锁定资源。 这个解决方案可以工作几个小时,然后我开始收到警告:
PHP警告:sem_acquire():无法获取密钥0x4101f1fb:第350行的script.php中的参数无效
PHP警告:sem_release():SysV信号量140105644163240(密钥0x4101f1fb)当前未在第354行的script.php中获取
看起来脚本超出了某些限制并且信号量被破坏了,但我无法在 ipcs 中找到任何指向当前限制/使用的内容。
我还尝试 sem_get 以获取新的信号量ID但我无法通过共享内存将其传递给子级 shm_put_var 无法使用资源。
在长期运行过程中处理信号量的最佳方法是什么?
答案 0 :(得分:3)