Velocizzare l'avvio con i daily/weekly scripts

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
B@Rz
Linux 0.x
Linux 0.x
Messaggi: 11
Iscritto il: ven 1 lug 2011, 19:02
Slackware: 13.37
Kernel: 2.6.37.6-smp
Desktop: KDE 4.7

Velocizzare l'avvio con i daily/weekly scripts

Messaggio 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?

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

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

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
B@Rz
Linux 0.x
Linux 0.x
Messaggi: 11
Iscritto il: ven 1 lug 2011, 19:02
Slackware: 13.37
Kernel: 2.6.37.6-smp
Desktop: KDE 4.7

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

Messaggio 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.

Avatar utente
marlavo
Linux 1.x
Linux 1.x
Messaggi: 180
Iscritto il: ven 2 lug 2010, 16:38
Nome Cognome: Marco Lavorini
Slackware: 15.0 x86_x64
Kernel: 6.6.21
Desktop: XFCE 4.18

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

Messaggio 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

Avatar utente
B@Rz
Linux 0.x
Linux 0.x
Messaggi: 11
Iscritto il: ven 1 lug 2011, 19:02
Slackware: 13.37
Kernel: 2.6.37.6-smp
Desktop: KDE 4.7

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

Messaggio 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!

Rispondi