Используя выскочку для задач недемона

Я хотел бы иметь foo do-startup-things работайте на начальной загрузке, и foo do-shutdown-things работайте на завершении работы где foo моя собственная программа.

Похоже, что Выскочка является хорошим кандидатом, чтобы сделать это, но Выскочка, кажется, разработана для использования с демонами, таким образом работая service foo stop дает ошибку stop: Unknown instance: потому что процесс, выполняемый, когда задание запуска, больше было выполнено не работает.

Существует ли способ использовать Выскочку для выполнения задач на запуске и завершении работы, не запуская демона?

4
задан 5 September 2014 в 01:47

1 ответ

Да, это возможно. Необходимо определить два задания задачи, вот пример:

Первый создают 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

можно протестировать его с:

sudo start startTaskJob

и вывод будет сохранен в /var/log/upstart/startTaskJob.log

, Чем создают 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

Этот сценарий будет выполняться каждый раз, когда система входит в runlevel 0, 1 или 6. На завершении работы runlevel становятся 0, и выскочка init процесс будет работать, это из-за" запускается на runlevel [016]".

можно протестировать его:

sudo start stopTaskJob

ОБНОВЛЕНИЕ: Это - пример о том, как сделать это в единственном файле.

# 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

я протестировал его на lubuntu 12.04, и это /var/log/upstart/taskJob.log содержание после перезапуска:

(stopTask) runlevel - 6 - job taskJob
(startTask) runlevel - 2 - job taskJob
6
ответ дан 17 November 2019 в 14:16

Другие вопросы по тегам:

Похожие вопросы: