Oui, c'est possible. Vous devez définir deux tâches de travail, voici un exemple :
Créez d'abord startTaskJob.conf
:
# startTaskJob -
#
# This service print "script start" and end
description "print script start"
start on runlevel [2345]
task
console log
script
exec echo "script start"
end script
Vous pouvez le tester avec :
sudo start startTaskJob
et la sortie sera enregistrée dans /var/log/upstart/startTaskJob.log
que de créer stopTaskJob.conf
:
# stopTaskJob -
#
# This service print "script stop" and end
description "print script stop"
start on runlevel [016]
task
console log
script
exec echo "script stop"
end script
Ce script sera exécuté chaque fois que le système entrera en runlevel
0, 1 ou 6. A l'arrêt runlevel
devient 0 et le processus d'init upstart l'exécutera à cause de " démarrage au niveau d'exécution [016] ".
Vous pouvez le tester :
sudo start stopTaskJob
UPDATE : Voici un exemple de la manière de procéder dans un seul fichier.
# taskJob -
#
# This service print environment variable
# start on runlevel
description "print environment variable"
start on runlevel [0123456]
task
console log
script
if [ "$RUNLEVEL" = "0" -o "$RUNLEVEL" = "1" -o "$RUNLEVEL" = "6" ]; then
exec echo "(stopTask) $UPSTART_EVENTS - $RUNLEVEL - job $UPSTART_JOB"
else
exec echo "(startTask) $UPSTART_EVENTS - $RUNLEVEL - job $UPSTART_JOB"
fi
end script
Je l'ai testé sur lubuntu 12.04 et c'est le cas. /var/log/upstart/taskJob.log
le contenu après le redémarrage :
(stopTask) runlevel - 6 - job taskJob
(startTask) runlevel - 2 - job taskJob