Очистка php сессий в ubuntu и debian: различия между версиями
Материал из support.qbpro.ru
imported>Vix Нет описания правки |
imported>Vix Нет описания правки |
||
Строка 1: | Строка 1: | ||
Debian я так понимаю пошел своим путем и для очистки сесий использует скрипт из крона который, чистит файлы со старыми php сессиями. | '''Debian я так понимаю пошел своим путем и для очистки сесий использует скрипт из крона который, чистит файлы со старыми php сессиями'''. | ||
Выглядит этот скрипт вот так | Выглядит этот скрипт вот так | ||
Строка 14: | Строка 14: | ||
для решения делаем так: | для решения делаем так: | ||
Называется flock. | Называется '''flock'''. | ||
Использовать примерно так в кроне: | Использовать примерно так в кроне: | ||
Строка 25: | Строка 25: | ||
В somescript.sh, соответственно, пихаете всё то, что запускается у вас сейчас (chmod +x на скрипт не забудьте). | В somescript.sh, соответственно, пихаете всё то, что запускается у вас сейчас (chmod +x на скрипт не забудьте). | ||
* [https://toster.ru/q/28525 взято тут...] |
Текущая версия от 23:48, 17 февраля 2014
Debian я так понимаю пошел своим путем и для очистки сесий использует скрипт из крона который, чистит файлы со старыми php сессиями. Выглядит этот скрипт вот так
32093? Ss 0:00 /bin/sh -c [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ]&& find /var/lib/php5/
-depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr /lib/php5/maxlifetime)!-execdir fuser -s {} 2>/dev/null \; -delete
32098? S 1:54 find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +24! -execdir fuser -s {}; -delete
находится тут:
/etc/cron.d/php5
Большая проблема что он сильно грузит винт, скрипт не успевает отрабатывать удаление файлов и запускается снова,
в моменты когда сессий очень много запускается несколько десятков скриптов на очистку сессий и они съедают весь процессор.
для решения делаем так:
Называется flock.
Использовать примерно так в кроне:
0 0 * * * root flock -n /tmp/somefile.lock "somecsript.sh"
Второй запуск команды
flock -n /tmp/somefile.lock "somecsript.sh"
уже не случится до тех пор, пока первый инстанс работает.
В somescript.sh, соответственно, пихаете всё то, что запускается у вас сейчас (chmod +x на скрипт не забудьте).