Précharger un logiciel donné ?

Bonjour,

Je lis un peu comment fonctionne preload, et il s’avère qu’il fait sa propre tambouille à partir des données qu’il recueille, mais, par défaut, seulement dans les bibliothèques (pas pour les données du /home par exemple), afin d’accélérer ce qui peut l’être.

Mon besoin est un peu différent : mon père utilise principalement le navigateur web sur sa Debian stable, et je voudrais précharger seulement celui-ci, mais tout celui-ci (inclus le profile et autres données du /home par exemple)

Je vois que nos amis de Gentoo (en l’occurrence : Antonio Orefice) ont concocté un script maison, repris sur le wiki de ARch, qui semble correspondre, Go-preload wiki.archlinux.org/index.php/Preload#Go-preload

Pensez-vous que je puisse l’utiliser sur Debian stable ? je vois que le wiki mentionne systemd, qui est aussi utilisé sur la machine de mon père.

Merci d’avance !

Bon, j’ai vu que le script était repris sur différentes distrib, donc j’ai testé la bête :

  1. 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)

  2. Télécharger le code source dans le répertoire /tmp

  1. 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]

  1. Permettre à un non-administrateur d’utiliser le démon gopreload :

NB :

$ whoami pour connaître votre username,

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

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