Понятия не имею, с чего начать. Я читал о демонах и не понял концепции.
Больше деталей:
- Я пишу сканер, который никогда не останавливается и сканирует RSS в Интернете.
- Гусеничный ход был написан на языке Java, поэтому сейчас это фляга.
- Я администратор на машине с Ubuntu 11.04.
- Есть вероятность того, что машина выйдет из строя, поэтому я бы хотел, чтобы сканер запускался при каждом запуске машины.
- Кроме того, я бы хотел, чтобы он продолжал работать, даже когда я вышел из системы. Я не уверен, что это возможно, но большую часть времени я выхожу из системы, и я все еще хочу ползти.
Любые идеи? Может ли кто-нибудь указать мне правильное направление?
Просто ищу самое простое решение.
Да! Возможно. :) Upstart - это способ убедиться, что служба работает. Он имеет пять пакетов, все установлены по умолчанию:
Обучение очень приятное и оно того стоит. У Upstart есть веб-сайт: http://upstart.ubuntu.com/
источник
3 быстрых предложения ...
Создайте сценарий S tart в
/etc/rc3.d
(многопользовательском режиме консоли) с соответствующими сценариями K ill/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: запускайте команду даже после выхода из системы .По умолчанию
myapp.jar
стандартный вывод будет идти в файл с именем./nohup.out
или,$HOME/nohup.out
если первый не доступен для записи.источник
Также имейте в виду, делая заявления с:
Иметь права 0755 и использовать или получить перед вашим .sh путь. Допустим, ваш сценарий находится на /root/test.sh, вам нужно сначала перейти на CD
/root/
перед доступомtest.sh
.Так что лучший способ - создать SH на init.d и изменить путь к нему
sh
и выполнить его в функции запуска.источник
Простые сценарии запуска с проверкой версии Java для Linux auth-agent и Windows auth-agent.bat
источник
Самый простой способ - использовать
supervisord
. Пожалуйста, смотрите полную информацию на http://supervisord.org/Вы также можете посмотреть более подробную информацию здесь:
Запуск исполняемого файла JAR при запуске системы
https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps
источник