Comment obtenir quelque chose pour démarrer au prochain démarrage seulement une fois dans Haiku

4

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

Kev
la source
Ceci est destiné à mon ordinateur personnel, je veux juste que quelque chose démarre au prochain démarrage, mais c'est la seule fois. Comment est-ce hors-sujet?
Kev
@ Zoredache - Haiku est le nom de l'OS, d'où "in Haiku" dans le titre, ainsi que la balise haiku. Cf haiku-os.org ou cliquez sur le tag haiku puis sur "En savoir plus".
Kev
Mon erreur. Je ne connaissais pas Haiku, je pensais que c'était l'application que vous vouliez démarrer, pas le système d'exploitation.
Zoredache

Réponses:

0

Assurez-vous qu’il /boot/common/settings/fresh_installexiste, puis créez un script shell se terminant .shpar /boot/common/settings/boot/post_install. Il s'exécutera au prochain démarrage, puis fresh_installse 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/Bootscriptpour accomplir la même chose avec un fichier différent de celui des fresh_installnon- .shscripts, etc. si vous souhaitez le modifier:

# Check for fresh install and run post install scripts.
freshInstallIndicator=/boot/common/settings/fresh_install
postInstallDir=/boot/common/boot/post_install
if [ -e $freshInstallIndicator ]; then
    # wait a moment for things to calm down a bit
    sleep 3

    # execute scripts
    for f in $postInstallDir/*.sh; do
        if [ -f $f ]; then
            echo "Running post install script $f ..." > /dev/dprintf
            $f
        fi
    done

    sync
    rm $freshInstallIndicator
fi

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

Kev
la source