[РЕШЕНО] Как запустить сервер firebird при старте?

Сделал:

sudo rc-update add firebird default 

конекта нету

вручную запускаю

sudo /usr/sbin/fbguard

все работает.

В чем баг?

На всякий случай:

% sudo /etc/init.d/firebird start  
 * Starting Firebird server ...                                                                                 [ ok ]
% sudo /etc/init.d/firebird stop 
 * Stopping Firebird server ...                                                                                 [ ok ]
% sudo /etc/init.d/firebird start
 * Starting Firebird server ...                                                                                 [ ok ]
% sudo /etc/init.d/firebird restart 
 * Stopping Firebird server ...                                                                                 [ ok ]
 * Starting Firebird server ...   

Либо выкладывайте логи, либо

Либо выкладывайте логи, либо ждите выхода телепатов из отпуска

Чего именно логи?

Чего именно логи?

Как то несерьезно.

Как то несерьезно. Стандартный способ автозапуска любого сервиса - добавление соответсвующего скрипта в необходимый уровень запуска, что вы с успехом и сделали командой rc-update.

Сам скрипт можно посмотреть less /etc/init.d/firebird. У меня как то так

pidfile=/var/run/firebird/firebird.pid
FB_OPTS="-pidfile $pidfile -start -forever"
.....
start(){
ebegin "Starting Firebird server"
start-stop-daemon --oknodo --start --pidfile $pidfile --chuid $FBRunUser --startas $MANAGER -- $FB_OPTS
eend $?
}

Особое внимание следует обратить на переменную pidfile. Каталог должен существовать и быть доступным юзеру из под которого запускается просесс. Так же следует обратить внимание на содержание файлов /etc/firebird . Там как минимум нужно указать корневую директорию (с файлами бд) для сервера firebird. Правила те же что и для pidfile
После настроек нужно поиграться с запуском инитскрипта вручную. Особый интерес представляют записи системного лога. Процессы в памяти отслеживаются командой ps. Ессно после запуска демона в логе не должно быть криминала, а процессы должны пристутсвовать в памяти. Еще можно посмотреть на лог /var/log/firebird/firebird.log. Обычно он не столь информативен, как хотелось бы. Но выдает номера ошибок по которым их можно искать в гугле. Командой nmap, изнутри и извне проверяется доступность портов сервиса. Если поднят файрвол снаружи без соответсвующих корректировок iptables сервис не видно.

Локально с сервера можно проверить коннект так:

fbsql -u sysdba -p ******* /usr/lib/firebird/mybase.gdb
SQL> show tables;
...список таблиц...

В общем должно провести нормальную работу по отладке сервиса. Ничего особенного. И таки да. Сервис вполне работоспособный . Особенно в версии 2.0.3....

Большое спасибо за столь

Большое спасибо за столь развернутый ответ, но пока что-то не заводится.

Вот мой /etc/init.d/firebird

#!/sbin/runscript
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-db/firebird/files/firebird.init.d.2.5,v 1.2 2011/05/12 18:42:35 jer Exp $

PIDFILE="/var/run/firebird/firebird.pid"

depend() {
        need net
}

start(){
        ebegin "Starting Firebird server"
        start-stop-daemon --start --pidfile $PIDFILE --user $FBUSER --group $FBGROUP --exec $FBGUARD -- $FB_OPTS
        eend $?
}

stop(){
        ebegin "Stopping Firebird server"
        start-stop-daemon --stop --name fbguard
        eend $?
}

restart(){
        svc_stop
        sleep 1
        svc_start
}

Вроде все обычное. Добавил только PIDFILE который по заданному пути создается и удаляется без моего участия.

Сразу после старта системы:

% ps -A | grep fb             
 5378 ?        00:00:00 fbguard
 5381 ?        00:00:00 fbserver

Вроде стартонули, но как я понимаю не работает, так как время по нулях.
Ну и прога моя не может приконектится.

*
*
*

В итоге сделал:

sudo chown firebird:firebird /home/user/test.fdb

и все заработало.

А до этого писало:

Statement failed, SQLSTATE = 28000 no permission for read-write access to database

Странно что ручным запуском fbguard работало =/
Видимо из-за того что права на файл были те же, что и в консоли при запуске fbguard.

В любом случае спасибо.

ну вообще-то когда вы делали

ну вообще-то когда вы делали sudo ... fbguard - под кем он запускался? под каким пользователем выполнялся в итоге? ну ка? да-да, именно, под рутом. у которого есть доступ полный на вашу базку. А когда сервер бд подымался инит-скриптом - он работал от имени firebird, у которого нет прав на базку в вашем домашнем каталоге. о чем он согласно вашим же сообщениям - очень внятно написал.

так что - неча на зеркало пенять...

Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"

1) Создайте каталог для юзера

1) Создайте каталог для юзера сервиса (пусть будет /home/firebird или другое место) с нормальными правами, положите туда базы, назначте соответсвующие права. Думаю файлы бд не нужны никому кроме юзверя firebird. В файле/etc/firebird/firebird.conf поправить переменную рутового каталога (root directory) который должен указывать на сей каталог. А но пермиссион это как раз про то что прав нет.
2) Ежели это промышленная базетенка - надо ставить резервное копирование. Соответствующий интрумент в комплекте

Понятно. База пока что

Понятно.

База пока что "домашняя".

PS: я только не понял: что дает задание рутового каталога?

Сервер там базы ищет, ну и

Сервер там базы ищет, ну и свои системные таблички, пароли,явки хранит.

Ясно. Спасибо.

Ясно. Спасибо.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".