У меня очень маленькая выскочка в /etc/init/tsm.conf
для запуска клиента резервного копирования после запуска сети. Все работает нормально, если я запускаю / останавливаю его вручную через service tsm start|stop|status
. Но service tsm enable
говорит tsm: unrecognized service
. Таким образом, он не запускается при загрузке автоматически. sudo service --status-all
также не отображается в списке известных вакансий.
Вот оно:
start on started networking
stop on stopped networking
respawn
script
#!/bin/bash
dsmc schedule > /dev/null
end script
Я запускаю Ubuntu 12.04.4. Версия Upstart 1.5-0ubuntu7.2. Кто-нибудь может мне помочь? :)
ОБНОВЛЕНИЕ
Использование initctl list
и других команд initctl показывает мою работу.
По моему опыту, вам не нужно ничего «включать», просто поместите .conf в / etc / init и наслаждайтесь.
Вы можете убедиться, что скрипт действительно выполняется, добавив в скрипт строку, подобную этой:
echo "alive" > /alive_and_well
Это создаст файл «alive_and_well» в вашем корневом каталоге, если скрипт будет запущен.
Если это не так, проблема, скорее всего, связана со строфой «Начинай». Вот что я использую для таких вещей (известно, что они работают):
start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]
Также шебанги в сценариях Upstart не поддерживаются, поэтому «#! / Bin / bash» бесполезен (AFAIK).
Посмотрите на другие выскочки работы, перечисленные в /etc/init.d/
. В моей системе все они являются символическими ссылками на /lib/init/upstart-job
, что заставляет работать команду service
(я использую Saucy).
Попробуйте создать такую же символическую ссылку, если хотите, чтобы команда service
работала.
В противном случае используйте start
, stop
и restart
напрямую.
Похоже, служба запущена, но вы не видите ожидаемого от нее поведения. Если он должен работать от имени определенного пользователя или с установленными переменными среды, то вам может потребоваться указать их. Убедитесь, что команда dsmc находится в вашей переменной PATH, или перейдите в каталог, в котором она находится.
Из справочника Upstart: http://upstart.ubuntu.com/cookbook/
Переменные окружения: Upstart позволяет устанавливать переменные окружения, которые будут доступны для заданий, чьи Файлы конфигурации задания, в которых они определены. Переменные среды задаются с помощью ключевого слова env.
env ENV_VAR=value
Установить идентификатор группы: изменения в группе перед запуском процесса задания.
setgid <groupname>
Установить идентификатор пользователя: изменения пользователя перед запуском процесса задания.
setuid <username>
Изменить каталог: Запускает процессы задания с рабочим каталогом в указанном каталоге вместо корня файловой системы.
chdir <directory>