Every couple days something on my RHEL 7 box goes into a swapstorm and uses up all the memory. I think it’s Firefox, but I never figured out why, generally I have four different Firefoxes running with four different profiles, so it’s hard to tell which one’s failing (if it even is that). Anyway, sometimes it makes the screen lock crash or something, and I can’t get in, and I can never remember what process you have to kill to get back in, so here it is: gnome-shell
. You have to killall -9 gnome-shell
, and it lets you back in. Also killall -STOP firefox
and killall -STOP "Web Content"
are handy if the swapstorm is still under way.
Hi Gary,
Don’t know if you still need this or are interested,
below (I hope) is a shell script that associates pids with profiles in default firefox linux installs, maybe it can help?
(Works for me on Centos 7.8.)
#! /bin/sh
# gegrep -A 2 ‘^.ThemeDirs’ ${HOME}/_FF_/*/extensions.ini |\
# gegrep Extension0 | sed ‘s#^[^\.]*\.\([^/]*\).*/local/\(.[^/]*\).*$#\1\t\2#’
( for d in `ls ${HOME}/.mozilla/firefox/*/prefs.js` ; do
# echo $d
dd=`dirname $d`
bn=`basename $dd | sed ‘s#^[^.]*\.\(.*\)#\1#’`
zdt=`stat –format=”%z” $d | awk ‘{ print $1,$2 }’ | sed ‘s#\.[0-9]*$##’`
state=””
if [ -L ${dd}/lock ]; then
state=” Active:`ls -l ${dd}/lock | sed ‘s#^.*[-][>][ ]\(.*\)$#\1#’ | sed ‘s#127.0.0.1##’` ”
fi
#
# echo “${dd} ${bn} $zdt”
# sw=`gegrep -A 2 ‘^.ThemeDirs’ $dd/extensions.ini | gegrep Extension0 | sed ‘s#^.*/local/\([^/]*\).*$#\1#’`
# nsw=`gegrep -A 2 ‘^.ThemeDirs’ $dd/extensions.ini | gegrep Extension0 | sed ‘s#^.*/local/ff/\([^/]*\).*$#\1#’`
# nff=`gegrep -A 2 ‘^.ThemeDirs’ $dd/extensions.ini | gegrep Extension0 | sed ‘s#^.*/opt/sfw/lib/\([^/]*\).*$#\1#’`
#
if [ -f $dd/compatibility.ini ];then
swv=`egrep ‘^LastVersion=’ $dd/compatibility.ini | sed ‘s#^[^=]*[=]\([^/]*\)[/].*$#\1#’`
swd=`egrep ‘^LastPlatformDir=’ $dd/compatibility.ini | sed ‘s#^[^=]*[=]\(.*\)$#\1#’`
sw=”${swd}/firefox \t${swv}”
elif [ -f /usr/lib64/firefox/application.ini ];then
sw=`egrep ‘^Version=’ /usr/lib64/firefox/application.ini`
sw=`echo $sw | sed -n ‘s#Version=#Firefox_#p’`
else
sw=`/usr/lib64/firefox/firefox –version`
fi
# echo ” This is sw: $sw ”
# echo ” This is nsw: $nsw ”
# echo ” This is nff: $nff ”
#
# if [ “x${sw}” = “xff” ] ; then
# echo “Using nsw”
# echo “${bn}\t${zdt}:\t${nsw} ${state}”
# else
# if [ `echo “$nff” | gegrep ‘/’` ] ; then
# echo “Using sw”
printf “${bn}\t${zdt}:\t$sw \t${state}\n”
# else
# echo “Using nff”
# echo “${bn}\t${zdt}:\t[opt]$nff ${state}”
# fi
# fi
done ) | sort -r -k 2,3
% ListFF
speedtest 2020-06-24 07:45:54: /usr/lib64/firefox/firefox 68.9.0_20200604071918
default 2020-06-22 12:19:37: /usr/lib64/firefox/firefox 68.9.0_20200604071918
__ff__ 2020-06-21 18:11:44: /usr/lib64/firefox/firefox 68.9.0_20200604071918
oneshot 2020-06-18 23:49:08: /usr/lib64/firefox/firefox 68.9.0_20200604071918
f2 2020-06-01 12:48:38: /usr/lib64/firefox/firefox 68.8.0_20200507181246
zoom 2020-05-16 14:05:49: /usr/lib64/firefox/firefox 68.8.0_20200507181246
Hi Gary,
Don’t know if you still need this or are interested,
below (I hope) is a shell script that associates pids with profiles in default firefox linux installs, maybe it can help?
(Works for me on Centos 7.8.)
#! /bin/sh
# gegrep -A 2 ‘^.ThemeDirs’ ${HOME}/_FF_/*/extensions.ini |\
# gegrep Extension0 | sed ‘s#^[^\.]*\.\([^/]*\).*/local/\(.[^/]*\).*$#\1\t\2#’
( for d in `ls ${HOME}/.mozilla/firefox/*/prefs.js` ; do
# echo $d
dd=`dirname $d`
bn=`basename $dd | sed ‘s#^[^.]*\.\(.*\)#\1#’`
zdt=`stat –format=”%z” $d | awk ‘{ print $1,$2 }’ | sed ‘s#\.[0-9]*$##’`
state=””
if [ -L ${dd}/lock ]; then
state=” Active:`ls -l ${dd}/lock | sed ‘s#^.*[-][>][ ]\(.*\)$#\1#’ | sed ‘s#127.0.0.1##’` ”
fi
#
# echo “${dd} ${bn} $zdt”
# sw=`gegrep -A 2 ‘^.ThemeDirs’ $dd/extensions.ini | gegrep Extension0 | sed ‘s#^.*/local/\([^/]*\).*$#\1#’`
# nsw=`gegrep -A 2 ‘^.ThemeDirs’ $dd/extensions.ini | gegrep Extension0 | sed ‘s#^.*/local/ff/\([^/]*\).*$#\1#’`
# nff=`gegrep -A 2 ‘^.ThemeDirs’ $dd/extensions.ini | gegrep Extension0 | sed ‘s#^.*/opt/sfw/lib/\([^/]*\).*$#\1#’`
#
if [ -f $dd/compatibility.ini ];then
swv=`egrep ‘^LastVersion=’ $dd/compatibility.ini | sed ‘s#^[^=]*[=]\([^/]*\)[/].*$#\1#’`
swd=`egrep ‘^LastPlatformDir=’ $dd/compatibility.ini | sed ‘s#^[^=]*[=]\(.*\)$#\1#’`
sw=”${swd}/firefox \t${swv}”
elif [ -f /usr/lib64/firefox/application.ini ];then
sw=`egrep ‘^Version=’ /usr/lib64/firefox/application.ini`
sw=`echo $sw | sed -n ‘s#Version=#Firefox_#p’`
else
sw=`/usr/lib64/firefox/firefox –version`
fi
# echo ” This is sw: $sw ”
# echo ” This is nsw: $nsw ”
# echo ” This is nff: $nff ”
#
# if [ “x${sw}” = “xff” ] ; then
# echo “Using nsw”
# echo “${bn}\t${zdt}:\t${nsw} ${state}”
# else
# if [ `echo “$nff” | gegrep ‘/’` ] ; then
# echo “Using sw”
printf “${bn}\t${zdt}:\t$sw \t${state}\n”
# else
# echo “Using nff”
# echo “${bn}\t${zdt}:\t[opt]$nff ${state}”
# fi
# fi
done ) | sort -r -k 2,3
% ListFF
Tech 2020-06-24 13:56:01: /usr/lib64/firefox/firefox 68.9.0_20200604071918 Active:10.10.149.229:+21871
speedtest 2020-06-24 07:45:54: /usr/lib64/firefox/firefox 68.9.0_20200604071918
default 2020-06-22 12:19:37: /usr/lib64/firefox/firefox 68.9.0_20200604071918
__ff__ 2020-06-21 18:11:44: /usr/lib64/firefox/firefox 68.9.0_20200604071918
oneshot 2020-06-18 23:49:08: /usr/lib64/firefox/firefox 68.9.0_20200604071918
f2 2020-06-01 12:48:38: /usr/lib64/firefox/firefox 68.8.0_20200507181246
zoom 2020-05-16 14:05:49: /usr/lib64/firefox/firefox 68.8.0_20200507181246