System - Planlæg daglige genstarter


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

ACTIVATE=$1
TIMES=$2
ROOTCRON_TMP="/tmp/oldcron"
USERCRON="/etc/os2borgerpc/usercron"
USER_CLEANUP="/usr/share/os2borgerpc/bin/user-cleanup.bash"

if grep "LANG=" /etc/default/locale | grep "sv"; then
  MESSAGE="Den här datorn kommer att starta om efter fem minuter"
elif grep "LANG=" /etc/default/locale | grep "da"; then
  MESSAGE="Denne computer genstarter om fem minutter"
else
  MESSAGE="This computer will reboot in five minutes"
fi

crontab -l > $ROOTCRON_TMP

sed --in-place "/reboot/d" $ROOTCRON_TMP

if ! get_os2borgerpc_config os2_product | grep --quiet kiosk; then
  touch $USERCRON
  chmod 700 $USERCRON
  sed --in-place "/starta om/d ; /genstarter/d ; /reboot/d" $USERCRON
fi

if [ "$ACTIVATE" = "True" ]; then

  IFS=", " read -ra TIMES_ARRAY <<< "$TIMES"
  for TIME in "${TIMES_ARRAY[@]}"; do
    IFS=":" read -ra HOUR_MIN <<< "$TIME"
    HOURS=${HOUR_MIN[0]}
    MINUTES=${HOUR_MIN[1]}
    echo "$MINUTES $HOURS * * * /usr/sbin/reboot" >> $ROOTCRON_TMP
    if ! get_os2borgerpc_config os2_product | grep --quiet kiosk; then
      MINM5P60=$(( $(( MINUTES - 5)) + 60))
      # Rounding minutes
      MINS=$(( MINM5P60 % 60))
      HRCORR=$(( 1 - $(( MINM5P60 / 60))))
      HRS=$(( HOURS - HRCORR))
      HRS=$(( $(( HRS + 24)) % 24))
      echo "$MINS $HRS * * * XDG_RUNTIME_DIR=/run/user/\$(id -u) /usr/bin/notify-send \"$MESSAGE\"" >> $USERCRON
    fi
  done
fi

crontab $ROOTCRON_TMP
rm --force $ROOTCRON_TMP

if ! get_os2borgerpc_config os2_product | grep --quiet kiosk; then
  crontab -u user $USERCRON
  if ! grep --quiet "crontab" $USER_CLEANUP; then
    echo "crontab -u user $USERCRON" >> $USER_CLEANUP
  fi
fi

Beskrivelse

Dette script indstiller en OS2borgerPC eller OS2borgerPC Kiosk til at genstarte dagligt på nogle valgte tidspunkter.

BEMÆRK: Scriptet bruger maskinens interne ur til at afgøre, hvornår der skal genstartes. Hvis maskinens ur går forkert, vil der også blive genstartet på de forkerte tidspunkter.

På en almindelig OS2borgerPC vil der blive vist en advarsel, 5 minutter før maskinen genstarter. Kiosk-maskiner understøtter ikke at vise disse advarsler, da de ikke har et almindeligt UI.

Scriptet tager to parametre:

Aktiver? - Sæt hak i tjekboksen for at indstille maskinen til at genstarte på de valgte tidspunkter. Lad tjekboksen stå tom for at fjerne alle planlagte genstartstidspunkter.

Tidspunkter - De komma-separerede tidspunkter, hvor maskinen skal genstarte. Formatet skal være “12:30, 14:00, 17:34” eller “12:30,14:00,17:34” (begge uden citationstegn) Der kan vælges et vilkårligt antal tidspunkter. Værdien af denne parameter har kun betydning, hvis der sættes hak i Aktiver?-afkrydsningsfeltet.