Привет, я пытаюсь запустить новую службу при перезагрузке сервера, и при запуске у меня возникает эта ошибка: «Метод« start »завершился со статусом 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
Любая помощь может быть отличной.
Является /users
символическая ссылка на другое место? Каталоги под /users
автоматическая установка? Сделайте разрешения на /users
сам мешает пользователю adm0ardp увидеть /users/adm0ardp
? В сообщении об ошибке говорится, что каталог не существует. Я бы использовал truss или dtrace и смотрел svc.startd обрабатывать и смотреть, что происходит, когда вы выполняете svcadm enable
.
Ошибка показывает, что cd / chdir не удалось. Правильно ли указан (и написан) пользователь adm0ardp и может ли он перейти в / users / adm0ardp?
Проблема оказалась в том, что моя служба была вызвана слишком рано и не могла запуститься раньше других служб. Чтобы исправить это, я добавил зависимость от одной из последних запущенных служб - это может быть, например, rlogin, ssh и т. Д.
Вот код, который я добавил в .xml:
<dependency name='login'
grouping='require_all'
restart_on='none'
type='service'>
<service_fmri value='svc:/network/login:rlogin' />