J'ai écrit ce code pour démarrer automatiquement la machine virtuelle KVM au démarrage du système hôte, et arrêter la machine virtuelle à l'arrêt ou au redémarrage du système hôte.
start on startup
start on started networking and started qemu-kvm and started libvirt-bin
stop on runlevel [016]
kill timeout 70
expect fork
pre-start exec /KVM/luc.sh prepara
exec /KVM/luc.sh avvia
pre-stop script
/KVM/luc.sh ferma
/bin/sleep 20
end script
luc.sh est un script avec ces fonctions :
- prepara() - préparer l'environnement
- avvia() - démarrer KVM
- ferma() - arrête la KVM
Cela fonctionne sauf pour le sleep
commande. Je dois retarder l'opération d'arrêt/redémarrage du système hôte pour attendre que l'arrêt de l'invité soit terminé. En d'autres termes, je veux insérer une attente de ~20 sec après l'opération de redémarrage de l'invité. /KVM/luc.sh ferma
commande. Il semble que la sleep
dans le script de démarrage est asynchrone. Est-il possible de faire un appel synchrone dans le script de démarrage ?