Bon, j’ai vu que le script était repris sur différentes distrib, donc j’ai testé la bête :
-
Vérifier que vous avez bien les dépendances requises : strace, coreutils (il faudra aussi mapandlock, mais il est fourni avec le reste des sources de gopreload, cf après)
-
Télécharger le code source dans le répertoire /tmp
- Compiler mapandlock à partir des sources incluses dans l’archive téléchargée et installer l’exécutable mapandlock.x86_64 ainsi que gopreload sur votre système :
[code]$ cd gopreload/usr/share/gopreload/mapandlock.source/ && ./compile.sh
mkdir -p /usr/share/gopreload/bin/
cp /tmp/gopreload/usr/share/gopreload/mapandlock.source/mapandlock.x86_64 /usr/share/gopreload/bin/
cp /tmp/gopreload/* / -av
rm -R /usr/share/gopreload/mapandlock.source/[/code]
- Permettre à un non-administrateur d’utiliser le démon gopreload :
NB :
$ whoami
pour connaître votre username,
- Demander, pour tel logiciel que vous souhaitez précharger (par exemple iceweasel), à gopreload de l’examiner (le logiciel ne doit pas déjà être lancé) :
($ gopreload-prepare iceweasel est censé marcher sans plus d’indication du chemin de l’application, mais pas chez moi…)
Puis comme indiqué, presser ENTREE une fois que le programme est totalement chargé (une estimation de la taille qui sera occupée en mémoire vive par les fichiers préchargés vous est donnée).
Cela aura pour effet d’inscrire dans /usr/share/gopreload/enabled la liste des fichiers correspondants à précharger.
- Puis, pour charger au démarrage les fichiers de cette liste, configurer le service systemd gopreload pour qu’il soit actif au démarrage :
pour vérifier qu’il tourne bien :
$ systemctl status gopreload
$ ps -ef|grep preload
Dans mon cas :
$ systemctl status gopreload
● gopreload.service - gopreload: Preloads files needed for given programs.
Loaded: loaded (/usr/lib/systemd/system/gopreload.service; enabled)
Active: active (running) since lun. 2015-11-16 19:19:36 CET; 11min ago
Main PID: 529 (StartPreload.sh)
CGroup: /system.slice/gopreload.service
├─ 529 /bin/bash /usr/share/gopreload/bin/StartPreload.sh
├─2598 /usr/share/gopreload/bin/mapandlock.x86_64 /tmp/listpreload…
└─2602 sleep 300
$ ps -ef|grep preload
root 529 1 0 19:19 ? 00:00:00 /bin/bash /usr/share/gopreload/bin/StartPreload.sh
root 2598 529 0 19:29 ? 00:00:00 /usr/share/gopreload/bin/mapandlock.x86_64 /tmp/listpreload.txt
ab 2742 2400 0 19:31 pts/0 00:00:00 grep preload
Mon /usr/share/gopreload/enabled/iceweasel.1000.openfiles-107MB.txt :
framabin.org/?0f612331d916880d# … AgJxtpS6k=
(/usr/share/gopreload/disabled est vide)
NB : à l’inverse : # systemctl disable gopreload
Plus finement, supprimer de /usr/share/gopreload/enabled les fichiers que vous ne souhaitez pas précharger, ou transférer les vers /usr/share/gopreload/disabled).
Rq1 :
As soon as you update iceweasel or it’s needed libraries, you will
need to (re)Prepare it again (or in the long time gopreload will be less effective)!
Rq2 :
En cas de pb : sudo ./StartPreload.sh debug
(depuis /usr/share/gopreload/bin/) pour vérifier que mapandlock charge bien la liste des fichiers
cf aussi bbs.archlinux.org/viewtopic.php?id=192765
PS : les bases systemd
lea-linux.org/documentations/Systemd