summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/php5-common.php5.cron.d2
-rwxr-xr-xdebian/rules1
-rw-r--r--debian/sessionclean7
3 files changed, 9 insertions, 1 deletions
diff --git a/debian/php5-common.php5.cron.d b/debian/php5-common.php5.cron.d
index bed06e3ef..abf04d241 100644
--- a/debian/php5-common.php5.cron.d
+++ b/debian/php5-common.php5.cron.d
@@ -4,4 +4,4 @@
# files, or 24 minutes if not defined. See /usr/lib/php5/maxlifetime
# Look for and purge old sessions every 30 minutes
-09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -ignore_readdir_race -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete
+09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionsclean /var/lib/php5 $(/usr/lib/php5/maxlifetime)
diff --git a/debian/rules b/debian/rules
index c89c7c868..509786ec3 100755
--- a/debian/rules
+++ b/debian/rules
@@ -622,6 +622,7 @@ install: build
# install common files
install -m755 debian/maxlifetime debian/php5-common/usr/lib/php5
+ install -m755 debian/sessionclean debian/php5-common/usr/lib/php5
install -m755 debian/php5enmod debian/php5-common/usr/sbin/php5enmod
ln -s php5enmod debian/php5-common/usr/sbin/php5dismod
diff --git a/debian/sessionclean b/debian/sessionclean
new file mode 100644
index 000000000..bd95db8b5
--- /dev/null
+++ b/debian/sessionclean
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# first find all used files and touch them (hope it's not massive amount of files)
+lsof -w -l +d "${1}" | awk -e '{ if (NR > 1) { print $9; } }' | xargs -i touch -c {}
+
+# find all files older then maxlifetime
+find "${1}" -depth -mindepth 1 -maxdepth 1 -type f -ignore_readdir_race -cmin +${2} -delete