Je veux que quelque chose démarre après le prochain redémarrage, mais seulement une fois, et non après un autre redémarrage. Tout comme votre première initialisation d'une image Haiku sur une clé USB exécute le programme d'installation, que vous l'utilisiez ou non (peut-être voulez-vous simplement l'exécuter sur la clé, par exemple), elle ne s'exécutera jamais au démarrage. Comment puis-je faire quelque chose comme ça, comme un rappel ponctuel pour le prochain démarrage?
Si je monte une image récemment téléchargée et que je compare les répertoires suivants de celle-ci à mon lecteur de démarrage installé:
/image/home/config/boot
/image/system/boot
/image/common/boot
... les fichiers sont identiques. Alors, comment Haiku sait-il si le programme d’installation run-once a été exécuté? Pas de là, en tout cas ...
Mise à jour: Je l' ai trouver le fichier /image/common/settings/fresh_install
qui n'existait pas sur mon installation, contenant le texte « Ce fichier n'est censé exister sur les nouvelles installations Haiku. » Cependant, le copier sur mon installation et le redémarrage ne provoquaient que l'exécution du programme de mise à jour de type MIME, et non du programme d'installation.
Réponses:
Assurez-vous qu’il
/boot/common/settings/fresh_install
existe, puis créez un script shell se terminant.sh
par/boot/common/settings/boot/post_install
. Il s'exécutera au prochain démarrage, puisfresh_install
se supprimera automatiquement, ce qui empêchera le script shell de s'exécuter aux démarrages suivants.J'imagine que cette approche aurait pu être adoptée dès le début, mais peut-être est-ce mieux car elle est "intégrée"? En gros, vous pouvez voler le code suivant
/boot/system/boot/Bootscript
pour accomplir la même chose avec un fichier différent de celui desfresh_install
non-.sh
scripts, etc. si vous souhaitez le modifier:... et le mettre dans votre UserBootScript, par exemple.
(Vous ne savez toujours pas ce qui fait que l'installateur lui-même s'exécute - il doit s'agir d'un cas encore plus spécial, car il démarre avant le démarrage de Deskbar ou de Tracker.)
la source