Sim, é possível. Você deve definir dois trabalhos de tarefa, aqui está um exemplo:
Primeiro, crie 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
Você pode testá-lo com:
sudo start startTaskJob
e a saída será salva em /var/log/upstart/startTaskJob.log
Em vez de criar 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
Este script será executado toda vez que o sistema entrar em runlevel
0, 1 ou 6. No shutdown runlevel
se tornará 0 e o upstart init será executado por causa de " start on runlevel [016] ".
Você pode testá-lo:
sudo start stopTaskJob
ATUALIZAÇÃO: Este é um exemplo de como fazer isso em um único arquivo.
# 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
Eu testei no lubuntu 12.04 e este é /var/log/upstart/taskJob.log
conteúdo após o reinício:
(stopTask) runlevel - 6 - job taskJob
(startTask) runlevel - 2 - job taskJob