Genstart maskinen, hvis Chromium ikke starter korrekt
Source: Download script
Last Updated: 11. September 2025 by Agnete Moos (agms@sonderborg.dk)
Parameters:
Navn | Type | Standardværdi | Påkrævet |
---|---|---|---|
Click to see the source code
#! /usr/bin/env bash
set -x
REBOOT_SCRIPT="/usr/share/os2borgerpc/bin/chromium_error_reboot.sh"
RESET_COUNTER_SCRIPT="/usr/share/os2borgerpc/bin/chromium_reboot_counter_reset.sh"
RESET_COUNTER_SERVICE="/etc/systemd/system/chromium_reboot_counter_reset.service"
PROFILE="/home/chrome/.profile"
COUNTER_FILE="/home/chrome/reboot_counter.txt"
MAXIMUM_CONSECUTIVE_REBOOTS=5
AUTOLOGIN_SCRIPT="/usr/share/os2borgerpc/bin/autologin.sh"
ACTIVATE=$1
if ! get_os2borgerpc_config os2_product | grep --quiet kiosk; then
echo "Dette script er ikke designet til at blive anvendt på en regulær OS2borgerPC-maskine."
exit 1
fi
mkdir --parents "$(dirname $REBOOT_SCRIPT)"
# Ensure idempotency
sed --in-place --expression "/startx/d" --expression "/for i in/d" --expression "/sleep/d" \
--expression "/done/d" --expression "/exit/d" --expression "/$(basename $REBOOT_SCRIPT)/d" $PROFILE
if [ "$ACTIVATE" = "False" ]; then
systemctl disable "$(basename $RESET_COUNTER_SERVICE)"
rm --force $REBOOT_SCRIPT $RESET_COUNTER_SCRIPT $RESET_COUNTER_SERVICE $COUNTER_FILE
echo "startx" >> $PROFILE
if [ -f "$AUTOLOGIN_SCRIPT" ]; then
echo "exit" >> $PROFILE
sed --in-place --expression "s/Reboot the computer/Regular login prompt/" \
--expression "s@$REBOOT_SCRIPT@/bin/login@" $AUTOLOGIN_SCRIPT
fi
exit 0
fi
echo "0" > $COUNTER_FILE
chmod 666 $COUNTER_FILE
if [ -f "$AUTOLOGIN_SCRIPT" ]; then
cat << EOF >> $PROFILE
startx
exit
EOF
sed --in-place --expression "\@else@{ n; n; s@/bin/login@$REBOOT_SCRIPT@ }" \
--expression "s/Regular login prompt/Reboot the computer/" $AUTOLOGIN_SCRIPT
else
cat <> $PROFILE
for i in 1 2 3; do
startx
sleep 10
done
$REBOOT_SCRIPT
EOF
fi
cat < $REBOOT_SCRIPT
#! /usr/bin/env bash
COUNTER=\$(cat $COUNTER_FILE)
COUNTER=\$((COUNTER+1))
echo \$COUNTER > $COUNTER_FILE
if [ \$COUNTER -le $MAXIMUM_CONSECUTIVE_REBOOTS ]; then
reboot
fi
EOF
chmod 755 $REBOOT_SCRIPT
cat < $RESET_COUNTER_SCRIPT
#! /usr/bin/env bash
sleep 120
if [ -n "\$(pgrep --list-full chrome)" ]; then
echo "0" > $COUNTER_FILE
fi
EOF
chmod 700 $RESET_COUNTER_SCRIPT
cat < $RESET_COUNTER_SERVICE
[Unit]
Description=OS2borgerPC chromium error reboot service
[Service]
Type=simple
ExecStart=$RESET_COUNTER_SCRIPT
[Install]
WantedBy=multi-user.target
EOF
systemctl enable "$(basename $RESET_COUNTER_SERVICE)"
Beskrivelse
Dette script ændrer maskinens indstillinger, således at den forsøger at starte Chromium-browseren op til tre gange, hvis browseren ikke starter korrekt i første omgang. Hvis browseren stadig ikke er startet korrekt efter tredje forsøg, genstartes maskinen.
For at undgå at maskinen kommer til at sidde fast i et genstartsloop, vil scriptet maksimalt genstarte maskinen 5 gange i træk.
BEMÆRK: Dette script skal køres efter Chromium - Installér og Chromium - Autostart for at virke.
Den nye indstilling tager først effekt efter en genstart.
Parametre
Aktiver? - Sæt hak i tjekboksen for at aktivere indstillingen. Lad tjekboksen stå tom for at fjerne indstillingen og gå tilbage til det normale enkelte forsøg på at starte Chromium.