Не могу запустить скрипт инициализации при загрузке после другого скрипта инициализации

У меня есть три сценария инициализации, и сценарий инициализации Broker работает нормально, но когда я пытаюсь запустить сценарий инициализации Consumer, а затем сценарий инициации сборщика данных, единственный выполняемый процесс - это брокер.

Я добавил символьные ссылки на уровни выполнения, используя update-rc.d для каждого сценария, и также изменил префиксы чисел в символических ссылках, чтобы попытаться запустить сценарии в правильном порядке, но это не сработало.

Я могу запустить сценарии из терминала, и они работают нормально, но все они должны быть запущены при загрузке.

Любые идеи относительно того, почему мои другие сценарии не работают?

Также внутри моего Consumer and Data Collector я работаю:

su user1 -c 'java -jar foo.jar'

начать службы.

Также потребительский Java-класс сидит и ожидает сообщения из очереди, поэтому Java-код не останавливается, пока я не укажу аргумент stop для сценария инициализации. Сначала должен быть запущен брокер, затем потребитель, а затем сборщик данных.

Добавление символических ссылок для уровней запуска:

sudo update-rc.d Broker defaults 10 90
sudo update-rc.d Consumer defaults 15 85
sudo update-rc.d DataCollector defaults 20 80

2 ответа

Я получил это на работу. Я сделал Broker фоновым процессом, потому что он постоянно работает, пока я не выключу компьютер или не вызову скрипт с параметром shutdown. Я также сделал Потребителя фоновым процессом.

Broker Init Script

su user1 -c 'qpid-server &'

Скрипт Consumer Init

su user1 -c 'java -jar foo.jar &'

Похоже, команда java никогда не завершается, и, следовательно, остальные сценарии инициализации не запускаются. Попробуйте что-то вроде:

 nohup su user1 -c 'java -jar foo.jar' &

и я думаю, что вы обнаружите, что остальная часть последовательности запуска init будет работать.

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