Replace the while loop with for loop to prevent launching subshell in the sessionclean script
This commit is contained in:
parent
5012075864
commit
62c00a154f
11
sessionclean
11
sessionclean
|
@ -21,14 +21,15 @@
|
|||
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
SAPIS="apache2:apache2\napache2filter:apache2\ncgi:php@VERSION@\nfpm:php@VERSION@-fpm\ncli:php@VERSION@\n"
|
||||
SAPIS="apache2:apache2 apache2filter:apache2 cgi:php@VERSION@ fpm:php@VERSION@-fpm cli:php@VERSION@"
|
||||
|
||||
# Iterate through all web SAPIs
|
||||
(
|
||||
proc_names=""
|
||||
for version in $(/usr/sbin/phpquery -V); do
|
||||
printf "$SAPIS" | { \
|
||||
proc_names=""
|
||||
while IFS=: read -r conf_dir proc_name; do
|
||||
for sapi in ${SAPIS}; do
|
||||
conf_dir=${sapi%%:*}
|
||||
proc_name=${sapi##*:}
|
||||
if [ -e /etc/php/${version}/${conf_dir}/php.ini ]; then
|
||||
# Get all session variables once so we don't need to start PHP to get each config option
|
||||
session_config=$(PHP_INI_SCAN_DIR=/etc/php/${version}/${conf_dir}/conf.d/ php${version} -c /etc/php/${version}/${conf_dir}/php.ini -d "error_reporting='~E_ALL'" -r 'foreach(ini_get_all("session") as $k => $v) echo "$k=".$v["local_value"]."\n";')
|
||||
|
@ -41,7 +42,7 @@ for version in $(/usr/sbin/phpquery -V); do
|
|||
printf "%s:%s\n" "$save_path" "$gc_maxlifetime"
|
||||
fi
|
||||
fi
|
||||
done }
|
||||
done
|
||||
done
|
||||
# first find all open session files and touch them (hope it's not massive amount of files)
|
||||
for pid in $(pidof $proc_names); do
|
||||
|
|
Loading…
Reference in a new issue