Firefox 在 Xubuntu 上因 umount 而崩溃后抱怨正在运行的实例

Firefox 在 Xubuntu 上因 umount 而崩溃后抱怨正在运行的实例

为了在不允许更改配置的情况下运行 Firefox,我设置了一个tmpfs,并在启动浏览器之前从中创建了两个覆盖。脚本运行良好,按预期
创建和销毁,但当启动到时,有些显然会失败,并且对 Firefox 的后续调用会抱怨它们自己的正在运行的实例。我可以验证,只有从执行脚本时,某些挂载才会保留。mountslauncherumountslauncher

脚本如下:

#!/usr/bin/bash
# set variables
FOX="/usr/bin/firefox"
pkill `basename $FOX` || true

#find working directories:
#find ~ -type d -iname "*fox*"

function errout () {
zenity --info --text="$@"
exit 1
}

CACHE=~/.cache/mozilla/firefox
ZILLA=~/.mozilla/firefox
FREE=`free | awk 'NR==2 {print $4;}'`
TEMP=/mnt/tmp # this one gets built in fstab

if [[ "$FREE" -lt 200000 ]]
then
    errout "zu wenig Speicherplatz"
fi
if ! test -d "$CACHE"
then
    errout "$CACHE ist kein Verzeichnis"
fi
if ! test -d "$ZILLA"
then
    errout "$ZILLA ist kein Verzeichnis"
fi
if ! test -d "$TEMP"
then
    errout "$TEMP ist kein Verzeichnis"
fi
if [[ "$USER" == "uk" ]]
then
    PWD=SUDOPASSWORD # of course not :-)
fi
echo $PWD | sudo -S true >& /dev/null

if [[ `mount | awk /^tmpfs/ | grep -cw "$TEMP"` == "0" ]]
then
    sudo mount tmpfs -t tmpfs -o defaults,size=250m "$TEMP"
else
    : # es ist noch nicht sicher, dass der Platz reichen wird
fi

# setup overlays:
mkdir -p "$TEMP/helpfox/"{Clower,Cupper,Cwork,Zlower,Zupper,Zwork}
sudo mount --bind "$CACHE" "$TEMP/helpfox/Clower"
sudo mount --bind "$ZILLA" "$TEMP/helpfox/Zlower"
sudo mount -t overlay overlay -olowerdir="$TEMP/helpfox/Zlower",\
upperdir="$TEMP/helpfox/Zupper",workdir="$TEMP/helpfox/Zwork" "$ZILLA"
sudo mount -t overlay overlay -olowerdir="$TEMP/helpfox/Clower",\
upperdir="$TEMP/helpfox/Cupper",workdir="$TEMP/helpfox/Cwork" "$CACHE"
sudo -k

$FOX

# destroy overlays:
sleep 2
echo $PWD | sudo -S true >& /dev/null
mount | awk '$3 ~ /helpfox/ { print $3; }' | xargs -r -l sudo umount
sudo rm -rf $TEMP/helpfox 
zenity --info --text="Die Blase ist abgebaut" 
sudo -k

答案1

我现在无法访问他们的笔记本电脑,因此无法验证我的理论,但是……我非常确信,脚本在终端中运行良好但无法从启动器运行的原因可能是在路径名中使用了“~”。用户运行时可以正确解释“~”,但启动器可能无法正确解码。如果事实证明确实如此,则修复方法可能是替换

CACHE=~/.cache/mozilla/firefox

经过

CACHE=`echo ~/.cache/mozilla/firefox`

ZILLA 也一样

相关内容