Я понятия не имею, где начать смотреть. Я читал о демонах и не понял понятия.
Больше деталей:
Какие-либо идеи? Кто-то может указать на меня в правильном направлении?
Просто поиск простого решения.
Также следует помнить при создании приложений с помощью:
update-rc.d myscript defaults
Чтобы иметь права 0755 и использовать или получить до вашего .sh путь. Допустим, ваш скрипт находится на /root/test.sh, вам нужно сначала перейти на CD /root/
, прежде чем получить доступ к test.sh
.
Так что лучший способ - создать SH в файле init.d и изменить путь к вашему sh
и выполнить его в функции запуска.
3 быстрых предложения ...
Создать S тарт-скрипт в /etc/rc3.d
(режим многопользовательской консоли) с соответствующими K недопустимыми скриптами в /etc/rc.0
и /etc/rc6.d
для уничтожения ваша Java-программа контролируемым образом, когда система выключается (уровень запуска 0) или перезагружается (уровень запуска 6). См. Введение в уровни запуска .
Возможно, вы сможете запустить ваше Java-приложение на уровне выполнения 2 (rc2.d), но, как сканер, ему понадобится TCP / IP. Поэтому убедитесь, что ваш сетевой сервис доступен / запущен на уровне запуска 2 заранее. Сеть определенно на уровне выполнения 3.
/etc/init.d
содержит все актуальные сценарии запуска / уничтожения. /etc/rcN.d
каталоги просто содержат ссылки на них с префиксом S или K для запуска или уничтожения их соответственно на уровне выполнения N.
Процесс, выполняемый crond
, должен сохраняться между выходами из системы. Может быть, добавить его в свой crontab.
Процесс, запущенный с nohup
, также должен сохраняться. См. nohup: выполните команду даже после выхода из системы .
$ nohup java -jar myapp.jar &
По умолчанию стандартный вывод myapp.jar
будет идти в файл с именем ./nohup.out
или $HOME/nohup.out
, если первый не доступен для записи.
Да! Это возможно.:) Выскочка является способом пойти, чтобы удостовериться, что сервис остается рабочим. Это имеет пять пакетов, все установленные по умолчанию:
Изучение очень приятно и определенно стоит того. У выскочки есть веб-сайт: http://upstart.ubuntu.com/
Самый легкий путь состоит в том, чтобы использовать supervisord
. Посмотрите полное изложение по http://supervisord.org/
Можно также посмотреть больше деталей здесь:
Выполнение исполняемого файла банки, когда система запускается
Простые сценарии запуска с проверкой версии Java для Linux auth-agent и Windows auth-agent.bat
Вот простой способ сделать это с помощью SysVInit. Инструкции:
Создайте сценарий запуска и остановки вашего приложения. Поместите его в какой-нибудь каталог, в нашем примере это:
/usr/local/bin/myapp-start.sh
/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 система.