У меня есть сервис, которая выполняет некоторые сценарии Bash, основанные на внешних событиях, в этих сценариях я называю PHP CLI, чтобы выполнить какой -то код PHP, работающий с учетной записью «A». "C". Общий блок памяти.
Это до сих пор, так нормально, но ... < /p>
Я не могу удалить (shmop_delete) блок, созданный из другой учетной записи, даже используя разрешения 0777, когда я создаю блок с помощью shmop_open. слишком тяжелые для обмена небольшими данными, иногда процесс отправляет 160 байтов некоторых других 10 кб. < /p>
Я не хочу использовать базу данных для этого, я стараюсь сохранять очень простые и световые, используя функции Shmop, но я не могу удалять блоки.@$id=shmop_open($this->m_dataCacheId, "a", 0, 0);
if(false !== $id){
shmop_delete($id);
@shmop_close($id);
}
< /code>
Got:
Warning: shmop_delete (): не удается отметить сегмент для удаления (вы владелец?)$id=shmop_open($this->m_dataCacheId, "a", 0, 0);
< /code>
Got:
Warning: shmop_open (): невозможно прикрепить или создать сегмент общей памяти "неверный аргумент" < /p>
Для создания i anage: < /p>
$id = shmop_open($this->m_dataCacheId, "c", 0777, strlen(serialize($data)));
< /code>
Datacacheid происходит от: < /p>
$this->m_dataCacheId = ftok(__FILE__, "0");
< /code>
и его согласованная между вызовами. < /p>
edit 2 (пример кода) < /p>
Запустите этот код из командной строки как простой пользователь, а затем запустите другой пользователь, например, с Sudo, затем запустите снова с первым пользователем, блок общей памяти больше не может быть удален после того, как владение изменяется в корне.
Подробнее здесь: https://stackoverflow.com/questions/796 ... p-problems
Данные об обмене PHP между CLI и проблемами с владением WEB ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение