Не могу запустить скрипт инициализации при загрузке после другого скрипта инициализации
У меня есть три сценария инициализации, и сценарий инициализации 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 будет работать.