Solaris SMF Services - метод "старт" завершен со статусом 96

Привет, я пытаюсь запустить новую службу при перезагрузке сервера, и я получил эту ошибку при запуске: "Метод" запуск "выход со статусом 96". Также мой сервис в состоянии "Техническое обслуживание".

Мой сервис работает, когда я отключаю / включаю его, но не когда перезагружаюсь (что является целью).

Я погуглил следующие ошибки и не мог понять, в чем проблема:

Журнал ошибок:

svc.startd could not set context for method: chdir: Ce fichier ou ce répertoire n'existe pas

Method "start" exited with status 96 

Мой.xml:

<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">

<service_bundle type='manifest' name='broker2'>

<service
    name="application/broker2"
    type="service"
    version="1">
<instance name='default' enabled='true'>

    <exec_method
          type='method'
          name='start'
          exec='/lib/svc/method/svc-broker start'
          timeout_seconds='30' >

        <method_context working_directory='/users/adm0ardp'>
            <method_credential user='adm0ardp' group='gpm0ardp' />
        </method_context>
    </exec_method>

    <exec_method
           type='method'
           name='stop'
           exec='/lib/svc/method/svc-broker stop'
           timeout_seconds='3' >

        <method_context working_directory='/users/adm0ardp'>
            <method_credential user='adm0ardp' group='gpm0ardp' />
        </method_context>
     </exec_method>

</instance>             

</service>
</service_bundle>

и мой сценарий:

#!/usr/bin/sh

. /lib/svc/share/smf_include.sh

case "$1" in
  start) script_path.ksh 
;;
  stop) script_path.ksh   
;;

esac 
exit 0

Любая помощь может быть отличной.

3 ответа

Решение

Проблема оказалась в том, что мой сервис был вызван слишком рано и не мог запуститься раньше других сервисов. Чтобы исправить это, я добавил зависимость от одного из последних запущенных сервисов - это может быть, например, rlogin, ssh и т. Д.

Вот код, который я добавил в.xml:

<dependency name='login'
grouping='require_all' 
restart_on='none'      
type='service'>
<service_fmri value='svc:/network/login:rlogin' />

Является /users символическая ссылка куда-то еще? Каталоги находятся под /users автомонтироваться? Делать разрешения на /users сам мешай пользователю adm0ardp видеть/users/adm0ardp? Сообщение об ошибке говорит, что каталог не существует. Я бы использовал truss или dtrace и наблюдал за процессом svc.startd и смотрел, что происходит, когда вы выполняете svcadm enable,

Ошибка показывает, что CD / CHDIR не удалось. Правильно ли указан и записан пользователь adm0ardp и может ли он перейти в /users/adm0ardp?

Другие вопросы по тегам