Назад | Перейти на главную страницу

SMF Solaris останавливает svc при дочернем segfault, несмотря на ignore_error

Я знаю о Служба уничтожения SMF Solaris из-за смерти ребенка. Вот моя проблема: я хочу, чтобы SMF игнорировала любые аварийные дампы (ошибки сегментов) дочерними элементами моей службы. Я думал, что добьюсь этого, добавив это в свой svc.xml и выполнив обновление svcadm и перезапустив его.

<property_group name='startd' type='framework'>
<propval name='ignore_error' type='astring'
value='core,signal' />
</property_group>

Теперь в application-mysvc я вижу следующее: default.log (вопросы встроены в комментарии)

[ Feb 15 10:19:56 Enabled. ]
[ Feb 15 10:19:56 Executing start method ("/lib/svc/method/mysvc start") ]
tee: /dev/msglog: Permission denied
Started mysvc for server xxx
[ Feb 15 10:19:57 Method "start" exited with status 0 ]

Почему SMF останавливает mysvc - дамп ядра был в дочернем процессе - не вступила ли вышеуказанная конфигурация в силу?

[ Feb 15 10:26:41 Stopping because process dumped core. ] 
[ Feb 15 10:26:41 Executing stop method (:kill) ]

Это какое-то поведение с автоматическим перезапуском?

[ Feb 15 10:26:58 Executing start method ("/lib/svc/method/mysvc start") ] 
tee: /dev/msglog: Permission denied
Started mysvc for server xxx
[ Feb 15 10:26:58 Method "start" exited with status 0 ]

Кто / что отключил услугу?

[ Feb 15 10:30:30 Stopping because service disabled. ] 
[ Feb 15 10:30:31 Executing stop method (:kill) ]

Я написал на OTN но ответа пока нет.

Кроме того, я не могу получить listprop или svcprop для отображения моего startd ignore_error

Файл манифеста не является канонической конфигурацией для вашей службы. В более старых версиях файл манифеста вообще не использовался после первоначального импорта. В последнее время файлы манифеста читаются при загрузке для настройки всех служб. Ни в одной системе сегодня изменение манифеста не дает немедленного эффекта, даже после обновления svccfg.

Вероятно, вам просто нужно снова "svccfg import" манифест. Вы также можете использовать svccfg, чтобы напрямую изменить свойство, а затем обновить его.