forum.bitel.ru http://forum.bitel.ru/ |
|
Глюк ActiveMQ в ubuntu 15.10 ? http://forum.bitel.ru/viewtopic.php?f=22&t=11107 |
Страница 1 из 1 |
Автор: | Угрюмов Роман [ 18 ноя 2015, 19:04 ] |
Заголовок сообщения: | Глюк ActiveMQ в ubuntu 15.10 ? |
1) Разворачиваю резервный сервер биллинга под ubuntu 15.10 Следую строго инструкции http://bgbilling.ru/v6.0/doc/ch01s04s01 ... in_service команда Код: /etc/init.d/activemq start успешно запускает ActiveMQНо!!! ActiveMQ не стартует при перезагрузке ubuntu!!! Код: /opt/mq/data - пустаяпричем остальные скрипты: bgbilling, bginet_access, bginet_accounting, ngdataloader стартуют при перезагрузке. 2) Для проверки делаю те же шаги в ubuntu 12 - все работает идеально! При перезагрузке автостартует все 3)Под ubuntu 15.10 скрипт запуска Код: /etc/init.d/activemq start помещаю в файл Код: /etc/rc.local и перегружаюсьActiveMQ успешно стартует! Ну не забавно ли господа! |
Автор: | zavndw [ 18 ноя 2015, 19:08 ] |
Заголовок сообщения: | Re: Глюк ActiveMQ в ubuntu 15.10 ? |
это же ubuntu через пару лет будет как windows ![]() |
Автор: | stark [ 18 ноя 2015, 19:16 ] |
Заголовок сообщения: | Re: Глюк ActiveMQ в ubuntu 15.10 ? |
а не systemd ли там случайно ? |
Автор: | Угрюмов Роман [ 18 ноя 2015, 19:22 ] |
Заголовок сообщения: | Re: Глюк ActiveMQ в ubuntu 15.10 ? |
stark писал(а): а не systemd ли там случайно ? Я не знаю, предлагаю вам попробовать и включить в документацию, у меня сил больше нет бодаться с ubuntu, работает и славно! |
Автор: | zavndw [ 18 ноя 2015, 19:41 ] |
Заголовок сообщения: | Re: Глюк ActiveMQ в ubuntu 15.10 ? |
stark писал(а): а не systemd ли там случайно ? Описание релиза Цитата: Продолжен перевод системы инициализации на компоненты systemd Видимо да уже systemd |
Автор: | Amir [ 18 ноя 2015, 20:04 ] |
Заголовок сообщения: | Re: Глюк ActiveMQ в ubuntu 15.10 ? |
В наших виртуалках CentOS и Debian с systemd тоже вроде отказывался запускаться через init.d - потому создали /usr/lib/systemd/system/activemq.service Цитата: [Unit] Потом systemctl enable activemq.service.Description=Apache ActiveMQ Daemon After=network.target Requires= [Service] Type=forking ExecStart=/opt/activemq/apache-activemq-5.9.1/bin/linux-x86-64/activemq start ExecStop=/opt/activemq/apache-activemq-5.9.1/bin/linux-x86-64/activemq stop [Install] WantedBy=multi-user.target Биллинг bgbilling.service: Цитата: [Unit] InetAccess: Description=BGBilling Server Daemon After=network.target,mysql.service,activemq.service Requires=mysql.service,activemq.service [Service] Type=forking ExecStartPre=/opt/bgbilling/BGBillingServer/script/bgcommonrc checkmysql ExecStart=/opt/bgbilling/BGBillingServer/script/bgbilling start ExecStop=/opt/bgbilling/BGBillingServer/script/bgbilling stop [Install] WantedBy=multi-user.target Цитата: [Unit] /opt/bgbilling/BGBillingServer/script/bgcommonrc checkmysql просто висит 30 секунд пока не получит соединение к БД (MariaDB вроде всё также запускается через init.d, потому при запуске виртуалки часто процесс биллинга начинал обращаться к БД до того как она запустилась).Description=inet-access Daemon After=network.target,mysql.service,activemq.service Requires=mysql.service,activemq.service [Service] Type=forking ExecStartPre=/opt/bgbilling/BGBillingServer/script/bgcommonrc checkmysql ExecStart=/opt/bgbilling/inet/BGInetAccess/access.sh start ExecStop=/opt/bgbilling/inet/BGInetAccess/access.sh stop [Install] WantedBy=multi-user.target Можно (нужно) еще и PIDFile указывать (nginx.service из пакета nginx): Цитата: [Unit] Например, Description=The nginx HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target Цитата: ... Тогда при перезапуске через systemctl он будет нормально ждать ожидания остановки, иначе может быть ошибка "UDP порт уже занят", т.к. предыдущий процесс не успел полностью остановиться.
[Service] Type=forking PIDFile=/opt/bgbilling/inet/BGInetAccess/.run/access.pid ... |
Автор: | ok-2004 [ 18 ноя 2015, 20:11 ] |
Заголовок сообщения: | Re: Глюк ActiveMQ в ubuntu 15.10 ? |
аллилуя!!! Цитата: ....bgcommonrc checkmysql просто висит 30 секунд пока не получит соединение к БД (MariaDB вроде всё также запускается через init.d, потому при запуске виртуалки часто процесс биллинга начинал обращаться к БД до того как она запустилась Вот именно это сломало полгода назад все мои представления о добре и зле. Прежде чем я понял, что когда среди последовательности процессов , стартующих через unit sysstemd затесался один процесс стартующий через /init.d - получается "балет в присядку". Походу разрабы mysql-форков тоже пришли к 'той мысле и стали патчить свои софтины механизмом notify через dbus. Во всяком случае оракл-овцы уже реализовали, перкона и маша пока чешут репу... |
Автор: | Amir [ 18 ноя 2015, 20:15 ] |
Заголовок сообщения: | Re: Глюк ActiveMQ в ubuntu 15.10 ? |
В конце bgcommonrc добавлено (раньше не было) Код: case "$1" in
checkmysql) checkmysql ;; checkmysqlsocket) checkmysqlsocket ;; esac |
Автор: | zavndw [ 18 ноя 2015, 20:21 ] |
Заголовок сообщения: | Re: Глюк ActiveMQ в ubuntu 15.10 ? |
Цитата: ....bgcommonrc checkmysql просто висит 30 секунд пока не получит соединение к БД (MariaDB вроде всё также запускается через init.d, потому при запуске виртуалки часто процесс биллинга начинал обращаться к БД до того как она запустилась Даже если бд не локально расположена? |
Автор: | Amir [ 18 ноя 2015, 20:24 ] |
Заголовок сообщения: | Re: Глюк ActiveMQ в ubuntu 15.10 ? |
Тогда менять скрипт (или вынести в отдельный файлик): Код: checkmysql() { А так вроде должно работать и не с локальной БД.ret=0 STARTTIMEOUT=30 while [ $STARTTIMEOUT -gt 0 ]; do RESPONSE=`/usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping 2>&1` && break echo "$RESPONSE" | grep -q "Error checking mysql: access denied for user" && break sleep 1 let STARTTIMEOUT=${STARTTIMEOUT}-1 done if [ $STARTTIMEOUT -eq 0 ]; then ret=1 echo "Error checking mysql: timeout error occurred." fi return $ret; } А в Debian MariaDB(возможно и MySQL) в скрипте в init.d останавливается командой mysqladmin stop и для этого при установке MariaDB(MySQL) создается отдельный пользователь, логин/пароль которого указан в /etc/mysql/debian.cfg. И если пользователя удалить - БД не будет останавливаться через службу, а при обновлении пакетов будет висеть, особо не сообщая причину. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |