Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Последовательность запуска служб в upstart  (Прочитано 9752 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Glaf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Ubuntu 10.04 (x64).
Столкнулся с двумя проблемами:
1) на ubuntu desktop не виден с windows-машин принтер, расшаренный через samba.
2) на ubuntu server не работает squid
Проблемы решаются перезапуском служб smbd и squid3 соответственно.
Гуглил, читал форум, анализировал логи. Вывод: upstart запускает процессы не в той последовательности. В первом случае необходимо запускать smbd после cups, а во втором - squid3 после drweb-icapd.
Манипуляции с очерёдностью в /etc/rcX.d почему-то не помогают. Пока решил поставить костыль: в /etc/rc.local делаю перезапуск smbd и squid. Но хочется сделать по-человечески.
В результате пришёл к выводу, что нужно править /etc/init/smbd.conf (в первом случае).
Строку
start on local-filesystemsнадо заменить на что-то типа
start on  (cups
 and local-filesystems)
где "cups" должно быть событием, означающим запуск CUPS.
В случае с squid проблема должна решаться аналогично, только конфигурационный файлик нужно самому написать.

Собственно вопрос к сообществу:
как будут называться события, означающие запуск CUPS и ICAP (drweb-icapd)? Может, есть где-то список этих событий?

Чтение официальной странички не помогло :(


Пользователь решил продолжить мысль 06 Июля 2010, 13:20:22:
С первой задачей вроде разобрался. Надо было прописать правила запуска CUPS.
Создаём конфигурационный файл для запуска CUPS
# touch /etc/init/cups.confНазначаем права доступа
# chmod 0644 /etc/init/cups.confНа всякий случай сделаем хозяином рута
# chown root:root /etc/init/cups.confСодержимое файла /etc/init/cups.conf
description "CUPS Print Server"
author      "Alexander Shelemetyev <as@prcpo.ru>"

start on (local-filesystems and net-device-up IFACE!=lo)

stop on stopped smbd

respawn

exec cupsd -F
Далее правим /etc/init/smbd.conf
меняем строку
start on local-filesystemsна
start on (started cups and local-filesystems)то есть указываем, что самба должна загружаться только после CUPS.
Перегружаем комп.
Проверяем
# initctl list | egrep '(cups|smbd)'

smbd start/running, process 789
cups start/running, process 774
Видно, что CUPS стартовал раньше SMBD.
В логах самбы наблюдаем отсутствие ошибок, связанных с cups:
# tail /var/log/samba/log.smbd
[2010/07/06 13:09:29,  0] smbd/server.c:1069(main)
  smbd version 3.4.7 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2009
[2010/07/06 13:09:29,  0] smbd/server.c:1115(main)
  standard input is not a socket, assuming -D option
Насчёт последнего сообщения в логе ещё не разобрался, обсуждение было здесь

Буду признателен за комментарии, всё ли правильно сделал?
И для чего могут быть необходимы скрипты в файлах конфигурации? Вроде, без них работает.
« Последнее редактирование: 06 Июля 2010, 13:30:11 от Glaf »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Ну ход действий правильный, но черезмерный. Да, скрипт запуска cups еще не переписали для upstart. Но твой вариант старта не полностью реализовывает инициализационные действия, см. /etc/init.d/cups. Я же предлагаю просто оставить скрипт запуска cups в init.d и поправить /etc/init/smbd.conf в части start on (local-filesystems and stopped rc).

Вот баг на ланчпаде по этой теме: https://bugs.launchpad.net/ubuntu/+source/cups/+bug/494141

Оффлайн chikatillo

  • Участник
  • *
  • Сообщений: 139
    • Просмотр профиля
Re: Последовательность запуска служб в upstart
« Ответ #2 : 22 Декабря 2010, 11:15:54 »
С squid не разобрались? У меня с ним из-за upstart проблема:
Т.К. он страртует раньше чем происходит pppoe соединение и не проходит Performing DNS Tests....

Как в upstart запустить его с параметром -D или вместо  net-device-up IFACE!=lo как-то так - net-device-up IFACE= pppoe..

Оффлайн Glaf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Последовательность запуска служб в upstart
« Ответ #3 : 23 Декабря 2010, 14:47:09 »
Неа, тупо в rc.local прописал рестарт демона. Работает и ладно. Разбираться дальше не стал.

Оффлайн Karazyabra

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Последовательность запуска служб в upstart
« Ответ #4 : 13 Декабря 2011, 05:47:17 »
Неа, тупо в rc.local прописал рестарт демона. Работает и ладно. Разбираться дальше не стал.
Пробовал этот костыль, но не вышло.
Прописал sudo /etc/init.d/squid restart - но после перезагрузки все то же, хотя если сделать sudo /etc/init.d/rc.local start то команда выполняется и инет начинает работать. что я делаю неправильно?
«В основе всех человеческих взаимоотношений лежит корыстный интерес» (c) RahXephon

Оффлайн Baster-spb

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Если кому еще интересно - опишу свой опыт решения проблемы незапуска squid
Все работало на 11.10, а после обновления на 12.04 squid перестал стартовать после перезагрузки.
Поставил squid в очередь после dns: в /etc/rc*.d было S30squid3 и S70dns-clean, S70pppd-dns - сделал S50 для dns и S70 для squid
Теперь стартует.

Хм, странно - проверил бэкап /etc - там squid стоял также до dns, но при этом все работало.
« Последнее редактирование: 02 Мая 2012, 22:11:24 от Baster-spb »
я тебе рожу набью и kubuntu поставлю

Оффлайн blakman

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Последовательность запуска служб в upstart
« Ответ #6 : 26 Декабря 2013, 18:43:18 »
была такая проблема на ubuntu server 12.04 LTS
решилась сменой последовательности запуска smbd и nmbd.
nmbd должен запускаться первым.

 

Страница сгенерирована за 0.063 секунд. Запросов: 25.