Я пытаюсь добавить настраиваемую службу в конфигурацию 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? Ведение журнала необходимо для диагностики проблем, и его будет проблематично отключить. Можно ли настроить эту службу для перезапуска только в том случае, если служба существует?
При проверке Справочная страница svc.startd, Я не рассматриваю ведение журнала stderr как причину сбоя. Проверить ОТКАЗ ОБСЛУЖИВАНИЯ раздел справочной страницы, чтобы помочь диагностировать.
Судя по добавленному вами сообщению, похоже, что время запуска метода истекло. Помещает ли сценарий запуска службы эту программу ("java server.CustomServer") в фоновый режим, чтобы она могла выйти?
Это не удается, потому что ваша программа Java не запускается в фоновом режиме. «Smf (5)» ожидает, что метод start вернется, и, поскольку ваш нет, он достигнет таймаута.
Вам необходимо обновить скрипт, чтобы использовать
java -jar server.jar &