Служба перезапуска SMF, когда есть выход?
Я пытаюсь добавить пользовательскую службу в конфигурацию SMF, которая кажется успешной в том, что служба запускается и существует файл журнала, но в этом и заключается проблема; служба при запуске печатает некоторые сообщения регистрации в stderr. Кажется, что SMF видит эти сообщения и, считая их ошибками, перезапускает службу, отказываясь после нескольких попыток и оставляя службу отключенной.
Вот часть вывода журнала:
[ Mar 30 14:59:54 Enabled. ]
[ Mar 30 14:59:54 Executing start method ("java server.CustomServer"). ]
Starting server...
[ Mar 30 15:00:04 Method or service exit timed out. Killing contract 107. ]
Запуск сервера напрямую из командной строки - это нормально, и в AFACS не возникает никаких ошибок при запуске, кроме вывода.
Как лучше всего управлять этим сервисом с помощью SMF? Ведение журнала необходимо для диагностики проблем, и его было бы проблематично отключить. Можно ли настроить эту службу на перезапуск, только если она существует?
2 ответа
Сбой, потому что ваша Java-программа не запускается в фоновом режиме. 'smf(5)' ожидает возврата метода start, а поскольку у вас нет, он истечет время ожидания.
Вам необходимо обновить скрипт для использования
java -jar server.jar &
Проверяя справочную страницу svc.startd, я не вижу, что запись в stderr является причиной сбоя. Обратитесь к разделу СЛУЖБА СБОРА справочной страницы, чтобы помочь в диагностике.
Судя по добавленному сообщению, похоже, что метод запуска истекает. Запускает ли сценарий запуска службы эту программу ("java server.CustomServer") в фоновом режиме, чтобы она могла выйти?