Я не знаю, с чего начать смотреть. Я читал о демонах и не понял понятия.
Подробнее:
Любые идеи? Может ли кто-нибудь указать мне в правильном направлении?
Просто искать самое простое решение.
Вот простой способ сделать это с помощью SysVInit. Инструкции:
Создайте сценарий начала и остановки вашего приложения. Поместите его в какой-то каталог, в нашем примере: Start Script: /usr/local/bin/myapp-start.sh Stop Script: /usr/local/bin/myapp-stop.sh Каждый из них предоставит инструкции для запуска / остановки приложения. Например, содержимое myapp-start.sh может быть таким простым, как следующее:#!/bin/bash
java -jar myapp.jar
Для сценария остановки это может быть примерно так: #!/bin/bash
# Grabs and kill a process from the pidlist that has the word myapp
pid=`ps aux | grep myapp | awk '{print $2}'`
kill -9 $pid
Создайте следующий скрипт (myscript) и поместите его на /etc/init.d. /etc/init.d/myscript content: #!/bin/bash
# MyApp
#
# description: bla bla
case $1 in
start)
/bin/bash /usr/local/bin/myapp-start.sh
;;
stop)
/bin/bash /usr/local/bin/myapp-stop.sh
;;
restart)
/bin/bash /usr/local/bin/myapp-stop.sh
/bin/bash /usr/local/bin/myapp-start.sh
;;
esac
exit 0
Положите скрипт на работу с системой (используя SysV). Просто запустите следующую команду (с правами root): update-rc.d myscript defaults
PS: Я знаю, что Upstart отличная и бла-бла, но я предпочитаю старую систему SysV init.
. Обучение очень приятное и хорошо стоит. У Upstart есть веб-сайт: http://upstart.ubuntu.com/
3 быстрых предложения ...
Создайте сценарий запуска в режиме /etc/rc3.d (режим многопользовательской консоли) с соответствующими сценариями Kill в /etc/rc.0 и /etc/rc6.d, чтобы убить вашу Java-программу контролируемым образом когда система отключается (уровень рунинга 0) или перезагружается (уровень запуска 6) См. Знакомство с уровнями Runlevels. Возможно, вы сможете запустить приложение Java на уровне выполнения 2 (rc2.d), но в качестве искателя ему потребуется TCP / IP. Поэтому убедитесь, что ваш сетевой сервис доступен / запущен на вашем уровне запуска 2 заранее. Сеть определенно находится на уровне выполнения 3. /etc/init.d содержит все фактические сценарии запуска / уничтожения. /etc/rcN.d каталоги содержат только ссылки на них, с префиксом S или K, чтобы начать или убить их соответственно, на уровень выполнения N. Процесс, выполняемый crond, должен сохраняться между выходами. Возможно, добавьте его в свой кронтаб. Процесс, выполняемый с nohup, также должен сохраняться. См. Nohup: выполните команду даже после выхода из системы.$ nohup java -jar myapp.jar &
По умолчанию стандартный вывод myapp.jar будет идти в файл с именем ./nohup.out или $HOME/nohup.out, если первый не может быть записан. Также имейте в виду, когда делаете ссылки с помощью:
update-rc.d myscript defaults
Чтобы иметь разрешения 0755 и использовать или получить перед вашим .sh путь. Предположим, что ваш скрипт находится на /root/test.sh, сначала вы должны перейти на CD /root/ перед доступом к test.sh.
Так что лучше всего сделать SH на init.d и там изменить путь к вашему sh и выполнить его в функции запуска.
Простые сценарии запуска с проверкой версии Java для автономного агента Linux и Windows auth-agent.bat
Самый простой способ - использовать supervisord. Подробнее см. На странице http://supervisord.org/
. Вы также можете просмотреть более подробную информацию:
https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps
. Обучение очень приятное и хорошо стоит. У Upstart есть веб-сайт: http://upstart.ubuntu.com/
. Обучение очень приятное и хорошо стоит. У Upstart есть веб-сайт: http://upstart.ubuntu.com/
. Обучение очень приятное и хорошо стоит. У Upstart есть веб-сайт: http://upstart.ubuntu.com/