Я экспериментирую с запуском Sonar на своем компьютере с Linux. Я хотел, чтобы он запускался автоматически при запуске коробки, но все в порядке, чтобы он работал как я.
Я создал «~ / .init / sonar.conf» со следующим простым содержимым:
description "Sonar server"
start on startup
respawn
chdir ~/apps/sonar-3.2/bin
exec ~/apps/sonar-3.2/bin/linux-x86-64/sonar.sh start
Я прочитал, что Upstart не настроен для пользовательских заданий по умолчанию, поэтому я отредактировал »/ etc /dbus-1/system.d/Upstart.conf ", закомментируя существующий элемент" "и заменяя его следующим:
<policy context="default">
<allow send_destination="com.ubuntu.Upstart" send_interface="org.freedesktop.DBus.Introspectable"/>
<allow send_destination="com.ubuntu.Upstart" send_interface="org.freedesktop.DBus.Properties"/>
<allow send_destination="com.ubuntu.Upstart" send_interface="com.ubuntu.Upstart0_6"/>
<allow send_destination="com.ubuntu.Upstart" send_interface="com.ubuntu.Upstart0_6.Job"/>
<allow send_destination="com.ubuntu.Upstart" send_interface="com.ubuntu.Upstart0_6.Instance"/>
</policy>
Когда я запускаю сонар, я начинаю: Job не смог начать". Я также сделал «список initctl | grep sonar» и получил «сонар стоп / ожидание».
Как я могу устранить эту проблему дальше?
Вероятно, ваша проблема в том, что то, что вы считаете startup
, не то, для чего выскочка использует это. Запуск - это одно из первых событий, генерируемых при загрузке сценария инициализации системы. Таким образом, вы можете упустить такие вещи, как сетевой стек и драйверы, файловые системы, почти все на самом деле. Внимательно перечитайте man-страницу о значении события запуска, а также о том, что запускается, также.
Вот процесс, который я использую для проверки и тестирования сервисов upstart.
Сначала проверьте вашу конфигурацию:
# silent if the config is valid
initctl check-config sonar
# reload the configuration to pick up latest changes
initctl reload-configuration
Я также добавляю скрипт - он работает на startup
- для переключения upstart в режим ведения журнала отладки:
sudo -s
cat <<EOCONF > /etc/init/upstart-debug.conf
description "enable debugging of upstart from within"
author "@dch__"
version "0.1"
start on startup
task
exec initctl log-priority debug
Поскольку это задача, она запускается только один раз. В результате вы получите гораздо больше деталей в /var/log/dmesg
- просто | grep init:
для истории.
Для вашей конкретной выскочки я бы изменил следующее:
start on started networking and filesystem
, которая успешно работает на Quantal и Precise, но, вероятно, не на более ранних версиях. expect fork
или expect daemon
в качестве строфы. emit ...
строф, либо операторы shell echo here
в ваших сценариях pre-exec и exec и проверьте этот вывод в соответствующих /var/log/upstart/sonar.log
. Для Новомодного Пользователя Job после изменения конфигурации Upstart.conf: https://gist.github.com/bradleyayers/1660182 работал на меня.
Относительно Вашего sonar.conf - start on startup
является, вероятно, слишком ранним. start on desktop-session-start
кажется более подходящим для пользовательских заданий.
Править: пользовательские задания не уважает Ubuntu при запуске, как описано в этом Отчете об ошибках - можно использовать следующее обходное решение.