Я столкнулся с проблемой при попытке запустить отдельный экран через службу Solaris 11.
Этот сервис управляет nginx. Когда я перезагружаю систему, экран не запускается, но если я выдаю svcadm disable nginx
затем svcadm enable nginx
вручную. Остальная часть сценария инициализации корректно работает при перезагрузке (запускается демон nginx и т. Д.).
Часть службы, запускающая экран, выглядит так:
case "$1" in
start)
echo "Starting Nginx Logger: \c"
/usr/bin/screen -S nginxLogger -d -m /opt/php-5.3.10/bin/php $loggingProg
LogRetVal=$?
[ $LogRetVal -eq 0 ] & echo "ok" || echo "failed"
....
Журнал (/var/svc/log/network-nginx:default.log) показывает, что $ LogRetVal возвращает 0, а $ loggingProg просто указывает на сценарий PHP.
Если это важно, когда я вручную перезапускаю службу, я вхожу в систему как root. Я не уверен, как проверить, является ли это проблемой с разрешением (я новичок в Solaris, я недавно перешел с CentOS / RHEL).
Скорее всего, после перезагрузки он начнется слишком рано ... может быть раньше, чем работа сети. Поместите правильные зависимости в XML описания службы.
Кстати svcs -xv
распечатывает службы в состоянии обслуживания и свой файл журнала, в котором можно найти потенциальную ошибку.
И по какой причине screen
? Вроде какое-то недопонимание SMF.