У меня есть сценарий оболочки, который вызывает java-файл jar и запускает приложение. Нет никакого способа обойти это, поэтому я должен работать с тем, что у меня есть.BASH: Shell Script as Init Script
При выполнении этого сценария оболочки он выводит статус приложения и просто сидит там (в значительной степени консоль); поэтому, когда что-то происходит с программой, она обновляет экран. Это похоже на любой нормальный процесс без демонализации/фоновой обработки. Единственный способ выйти из него - ctrl-c, который затем полностью завершает процесс. Я знаю, что я мог бы обойти это, выполнив path_to_shell_script/script.sh &
, что послужило бы основой для моей сессии (я мог бы использовать nohup, если бы захотел выйти).
Моя проблема: я просто не знаю, как поставить этот скрипт в сценарий инициализации. У меня есть большая часть скрипта init, но когда я пытаюсь его демонизировать, он не работает. Тем не менее, я почти заработал, когда я запускаю initscript, он фактически охватывает ту же «консоль» в скрипте и просто сидит там, пока я не нажму ctrl-c. Вот линия в вопросе:
daemon ${basedir}/$prog && success || failure
Проблема заключается в том, что я не могу фон только daemon ${basedir}/$prog
часть, и я думаю, что это, где я бегу в вопрос. Кто-нибудь успешно создал сценарий init для сценария оболочки? Также этот сценарий оболочки не является daemonizable (вы можете его фон, но основная программа не поддерживает параметр daemonize, иначе я бы просто позволил приложению выполнять всю работу).