Pagina 1 di 1

Velocizzare l'avvio con i daily/weekly scripts

Inviato: dom 17 lug 2011, 10:12
da B@Rz
Mi pare doveroso ribadire che sono ancora un utente alle prime armi, quindi vi chiedo se quel che ho fatto ieri dopo cena sia una fesseria o possa avere un senso.

Premessa
Mi sono reso conto che un bel po' di tempo durante il boot viene assorbito da:
  • aggiornamento delle librerie condivise
    aggiornamento degli indici dei font X
    aggiornamento delle cache delle icone
    aggiornamento del database mime
Strategia
Mi sono creato un file con permessi di esecuzione

rc.DS

Codice: Seleziona tutto

# Update all the shared library links:
if [ -x /sbin/ldconfig ]; then
  echo "Updating shared library links:  /sbin/ldconfig &"
  /sbin/ldconfig &
fi


# Update the X font indexes:
if [ -x /usr/bin/fc-cache ]; then
  echo "Updating X font indexes:  /usr/bin/fc-cache -f &"
  /usr/bin/fc-cache -f &
fi

# Update any existing icon cache files:
if find /usr/share/icons 2> /dev/null | grep -q icon-theme.cache ; then
  for theme_dir in /usr/share/icons/* ; do
    if [ -r ${theme_dir}/icon-theme.cache ]; then
      echo "Updating icon-theme.cache in ${theme_dir}..."
      /usr/bin/gtk-update-icon-cache -t -f ${theme_dir} 1> /dev/null 2> /dev/null &
    fi
  done
  # This would be a large file and probably shouldn't be there.
  if [ -r /usr/share/icons/icon-theme.cache ]; then
    echo "Deleting icon-theme.cache in /usr/share/icons..."
    #/usr/bin/gtk-update-icon-cache -t -f /usr/share/icons 1> /dev/null 2> /dev/null &
    rm -f /usr/share/icons/icon-theme.cache
  fi
fi

# Update mime database:
if [ -x /usr/bin/update-mime-database -a -d /usr/share/mime ]; then
  echo "Updating MIME database:  /usr/bin/update-mime-database /usr/share/mime &"
  /usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null &
fi
e ho sostituito i frammenti qui sopra che erano nel rc.M con:

rc.M

Codice: Seleziona tutto

[...]

# Execute DailyScripts
if [ -x /etc/rc.d/rc.DS ]; then
	counterFileName="/etc/rc.d/rc.DS.counter"
	dsFileName="/etc/rc.d/rc.DS"
	actualDay=$(date -u +%j)
	lastDay=$(cat $counterFileName)
	if [ "$lastDay" != "$actualDay" ]; then
		echo $actualDay > $counterFileName
		echo "Running Daily Scripts"
		. $dsFileName
	fi
fi

[...]
Conclusione
Così facendo gli script di rc.DS vengono eseguiti solo al primo avvio della giornata, facendo guadagnare al mio netbook qualche secondo prezioso durante tutti gli altri avvii.
EDIT: dimenticavo che, logicamente, altri servizi che devono essere eseguiti di rado potrebbero essere inseriti in un rc.WS che viene lanciato solo una volta alla settimana in maniera simile ai DS visti sopra.

Critiche?

Re: Velocizzare l'avvio con i daily/weekly scripts

Inviato: dom 17 lug 2011, 10:28
da targzeta
Beh, io tutti quelli aggiornamenti di cui parli li ho semplicemente commentati :). Anche il controllo del filesystem l'ho disabilitato creando il file:

Codice: Seleziona tutto

rc.local_shutdown
con all'interno:

Codice: Seleziona tutto

touch /etc/fastboot
entrambi questi file sono previsti dalla Slackware, controlla i file rc.K per rc.local_shutdown e rc.S per il fastboot.

Emanuele

Re: Velocizzare l'avvio con i daily/weekly scripts

Inviato: dom 17 lug 2011, 11:32
da B@Rz
Non saprei... Le possibilita' che si corrompa il filesystem sono remote, ma farlo controllare una volta ogni tanto mi fa sentire piu' tranquillo :)

Per quanto riguarda gli altri script, farli eseguire a ogni boot mi pare un grande spreco, cosi' come trovo eccessivo il non farli mai eseguire (per me e' noioso farli partire a mano quando serve), quindi quello di una volta al giorno (o, volendo, un po' piu' di rado) mi sembrava un buon tradeoff.

Re: Velocizzare l'avvio con i daily/weekly scripts

Inviato: dom 17 lug 2011, 11:49
da marlavo
Prendendo spunto da Salix ;) , ho spostato l'esecuzione degli script in "/etc/cron.daily/housekeeping" (uso anacron, che senza dover reinventare niente, provvede ogni giorno ad eseguire gli script che mi servono).
Questo è il contenuto, che ho ovviamente provveduto a commentare in rc.S:

Codice: Seleziona tutto

#!/bin/sh

# Update all the shared library links:
if [ -x /sbin/ldconfig ]; then
  echo "Updating shared library links:  /sbin/ldconfig &"
  /sbin/ldconfig &
fi

# Update the X font indexes:
if [ -x /usr/bin/fc-cache ]; then
  /usr/bin/fc-cache -f &
fi

# Update any existing icon cache files:
if find /usr/share/icons 2> /dev/null | grep -q icon-theme.cache ; then
  for theme_dir in /usr/share/icons/* ; do
    if [ -r ${theme_dir}/icon-theme.cache ]; then
      /usr/bin/gtk-update-icon-cache -t -f ${theme_dir} 1> /dev/null 2> /dev/null &
    fi
  done
  # This would be a large file and probably shouldn't be there.
  if [ -r /usr/share/icons/icon-theme.cache ]; then
    rm -f /usr/share/icons/icon-theme.cache
  fi
fi

# Update mime database:
if [ -x /usr/bin/update-mime-database -a -d /usr/share/mime ]; then
  /usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null &
fi

# These GTK+/pango files need to be kept up to date for
# proper input method, pixbuf loaders, and font support.
if [ -x /usr/bin/update-gtk-immodules ]; then
  /usr/bin/update-gtk-immodules
fi
if [ -x /usr/bin/update-gdk-pixbuf-loaders ]; then
  /usr/bin/update-gdk-pixbuf-loaders
fi
if [ -x /usr/bin/update-pango-querymodules ]; then
  /usr/bin/update-pango-querymodules
fi

Re: Velocizzare l'avvio con i daily/weekly scripts

Inviato: dom 17 lug 2011, 22:12
da B@Rz
Ok, mi ha fatto piacere appurare che questa mia idea non e' del tutto campata per aria.

La soluzione di marlavo e' molto piu' elegante della mia, grazie dello spunto!