# firebird

## qwaszs

Witam Wszystkich

Odświerzyłem ostatnio Gentoo i pojawił mi się problem z bazą firebird.

NIe mogę jej uruchomić

" start-stop-daemon: fopen `/var/run/firebird/firebird.pid': No such file or directory "

i po trzech dniach szukania dalej jestem w tym samym miejscu. Znalazłem informację, że powinienem skompilować firebird z flagą xinetd. Po zainstalowaniu z flagą xinetd. Firebird znika z katalogu init.d, a w opisie jest, że powinienem najpierw uruchomić xinetd potem firebird,...ale jak. Po kompilacji bez flagi xinetd wracam do punktu wyjścia.

Może ktoś z was zetknął się zt takim probleme? Proszę o pomoc. Baza firebird potrzebma mi jest do uruchomienia programu księgującego.

----------

## lsdudi

a masz katalog /var/run/firebird ?

----------

## Jacekalex

Dziwnie tego Firebirda instalowałeś  :Wink: 

Chwilkę temu wrzuciłem Firebirda:

```
qlist -ICvUq firebird

dev-db/firebird-2.0.3.12981.0-r6 debug
```

Przy podnoszeniu miauczenia co nie miara  :Smile:  :

```
/etc/init.d/firebird start

firebird             | * Starting Firebird server ...

firebird             | * WARNING: -o/--oknodo is deprecated and will be removed in the future

firebird             | * WARNING: -c/--chuid is deprecated and will be removed in the future, please use -u/--user instead

firebird             | * WARNING: -a/--startas is deprecated and will be removed in the future, please use -x/--exec or -n/--name instead

firebird             |ASSERT: file ../src/utilities/ibmgr/ibmgr.cpp line 707: in_sw = 20

firebird             |check /var/log/firebird/firebird.log file for errors

firebird             |can not start server                                [ ok ]

```

Nie pasowały mu limity systemowe, ale pomogło ustawienie wnioskowanych (w logu):

```
grep firebird  /etc/security/limits.conf

firebird    soft       nofile    4096

firebird    hard       nofile    4096
```

Teraz  najwyraźniej działa:

```
ps uax | grep -v grep | grep fb

firebird 23252  0.0  0.0  22304  1788 ?        S    03:05   0:00 /usr/share/firebird/../../../usr/bin/fbguard -f -p /var/run/firebird/firebird.pid

firebird 23253  0.0  0.0 239744  4024 ?        Sl   03:05   0:00 /usr/share/firebird/../../../usr/bin/fbserver
```

```
lsof -i :3050

COMMAND    PID     USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME

fbserver 23253 firebird    0u  IPv4 3704342      0t0  TCP *:gds_db (LISTEN)

```

Wszystkie błędy, jakie w nim widzę, są opisane na wiki.

Sznurek: http://en.gentoo-wiki.com/wiki/Firebird

/var/run mam w tmpfs, także folder /var/run/firebird sam sobie musiał założyć, albo zrobił to Openrc przy starcie.

```
cat /var/run/firebird/firebird.pid

23253
```

```
qlist -IvUqC openrc

sys-apps/openrc-0.11.8 debug elibc_glibc kernel_linux ncurses pam selinux static-libs unicode

```

Także SOA#1

Pozdrawiam

 :Cool: 

----------

## qwaszs

firebird zainstalowałem poprzez komendę emerge

dopisałem do "limits.conf" linijki "firebird    soft       nofile    4096 i firebird    hard       nofile    4096" (chyba o to chodziło?)

efekt:

```

etc/init.d/firebird start

 * Starting Firebird server ...

 * WARNING: -o/--oknodo is deprecated and will be removed in the future

 * WARNING: -c/--chuid is deprecated and will be removed in the future, please use -u/--user instead

 * WARNING: -a/--startas is deprecated and will be removed in the future, please use -x/--exec or -n/--name instead

Could not open /usr/lib/firebird/../../../var/run/firebird/isc_guard1.wielki for write

check /var/log/firebird/firebird.log file for errors

can not start server 

```

ostatnie logi:

```

wielki (Client) Fri Jan  4 11:13:45 2013

        INET/inet_error: connect errno = 111

wielki (Client) Fri Jan  4 11:26:23 2013

        INET/inet_error: connect errno = 111

wielki (Client) Fri Jan  4 11:50:43 2013

        INET/inet_error: connect errno = 111

wielki (Client) Fri Jan  4 11:59:49 2013

        INET/inet_error: connect errno = 111

```

Czy możesz mi tak łopatologicznie napisać co zrobić. Jak widzę kaltalogu var/run/firebird także nie tworzy.

----------

## qwaszs

może jeszcze to pomoże

```

wielki ~ # /etc/init.d/firebird restart

 * Stopping Firebird server ...

 * WARNING: -o/--oknodo is deprecated and will be removed in the future

 * start-stop-daemon: fopen `/var/run/firebird/firebird.pid': No such file or directory          [ !! ]

 * ERROR: firebird failed to stop

wielki ~ # 

```

----------

## Jacekalex

Kiedyś, dawno temu, miałem podobny problem z powodu /var/run w tmpfs, i wrzuciłem własny skrypt do runlevelu boot:

```
cat /etc/init.d/bzdury

#!/sbin/runscript

# Copyright 1999-2011 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/app-admin/hddtemp/files/hddtemp-init,v 1.6 2011/06/12 13:18:20 spock Exp $

depend() {

   need localmount

}

start() {

   ebegin "Robię foldery dla tandety ;)"

   mkdir -p /var/run/mysqld;

   chown mysql:mysql /var/run/mysqld;

   chmod 777 /var/run/mysqld;

   mkdir -p /var/run/asterisk;

   chown asterisk:asterisk /var/run/asterisk;

   mount -o bind /var/run/mysqld /var/spool/postfix/var/run/mysqld;

   chown root:cdrom /dev/sr0 2>&1>/dev/null;

    chmod 660 /dev/sr0 2>&1>/dev/null;

   test -L /dev/cdrom || ln -s /dev/sr0 /dev/cdrom 2>&1>/dev/null;

   test -L /dev/dvd || ln -s /dev/sr0 /dev/dvd 2>&1>/dev/null;

   test -r /dev/ips || mkfifo /dev/ips;

   chown root:proc /dev/ips; chmod 640 /dev/ips;

    test -r /dev/snort || mkfifo /dev/snort;

   chown root:proc /dev/snort; chmod 640 /dev/snort;

   

  

   eend $?

}

stop() {

   ebegin "Nie mam nic do roboty ;)"

   eend $?

}
```

Był to sezon, kiedy Mysql, Postgres i diabli wiedzą co jeszcze, nie umiało zrobić swojego folderu.

Zapisałem jako /etc/init.d/bzdury - dałem atrybut wykonania, i ustawiłem z /etc/rc.conf żeby wstawało przed problematycznymi usługami.

Obejście okazało się skuteczne, a składnia skryptów startowych, to najzwyklejszy bash na świecie.

Co do tych strasznych komunikatów o błędach, to u mnie Firebird też identycznie miauczy, jest o tym również na wiki, sznurka masz wyżej.

Pozdrawiam

 :Cool: 

----------

## qwaszs

Rozumiem, że mój skrypt powinien być skrócony do pierwszych czterech linijek po "start". A mszql zamieniam na firebird. Spróbuję.

----------

## qwaszs

Na podstawie Twojego skryptu stworzyłem coś takigo:

```

#!/sbin/runscript

# Copyright 1999-2011 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/app-admin/hddtemp/files/hddtemp-init,v 1.6 2011/06/12 13:18:20 spock Exp $

depend() {

   need localmount

}

start() {

   ebegin "Robię foldery dla tandety ;)"

   mkdir -p /var/run/firebird;

   chown firebird:firebird /var/run/firebird;

   chmod 777 /var/run/firebird;

   eend $?

}

stop() {

   ebegin "Nie mam nic do roboty ;)"

   eend $?

}

```

Z takim efektem:

```

wielki ~ # /etc/init.d/bzdury start

 * Robię foldery dla tandety ;) ...                                                                                                             [ ok ]

wielki ~ # /etc/init.d/firebird start

 * Starting Firebird server ...

 * WARNING: -o/--oknodo is deprecated and will be removed in the future

 * WARNING: -c/--chuid is deprecated and will be removed in the future, please use -u/--user instead

 * WARNING: -a/--startas is deprecated and will be removed in the future, please use -x/--exec or -n/--name instead

check /var/log/firebird/firebird.log file for errors

can not start server 

wielki ~ # ls /var/run/firebird/

firebird.pid  isc_guard1.wielki  isc_init1.wielki  isc_lock1.wielki

```

Ostatnie logi:

```

wielki (Client) Fri Jan  4 19:36:51 2013

        INET/inet_error: connect errno = 111

wielki (Client) Fri Jan  4 19:36:51 2013

        /usr/lib/firebird/../../../usr/bin/fbguard: guardian starting ../../../usr/bin/fbserver

```

Co to oznacza?  "INET/inet_error: connect errno = 111"

----------

## gexcite

Sprawdź uprawnienia plików bazy, bo pojawia Ci się coś takiego:

```
Could not open /usr/lib/firebird/../../../var/run/firebird/isc_guard1.wielki for write
```

----------

## Jacekalex

Panie wielki, jak tam z czytaniem u Pana.

Nawet w arcie na wiki, który wkleiłem wyżej, jest o tym komunikacie w logach, żeby sobie nim makówki nie zaśmiecać, bo serwer pomimo błędu w logach, działa.

```
tail  /var/log/firebird/firebird.log

localhost (Client)   Sun Jan  6 02:52:16 2013

   /usr/share/firebird/../../../usr/bin/fbguard: guardian starting ../../../usr/bin/fbserver

localhost (Client)   Sun Jan  6 04:08:40 2013

   /usr/share/firebird/../../../usr/bin/fbguard: ../../../usr/bin/fbserver normal shutdown.
```

```
/etc/init.d/firebird start

firebird             | * Starting Firebird server ...

firebird             | * WARNING: -o/--oknodo is deprecated and will be removed in the future

firebird             | * WARNING: -c/--chuid is deprecated and will be removed in the future, please use -u/--user instead

firebird             | * WARNING: -a/--startas is deprecated and will be removed in the future, please use -x/--exec or -n/--name instead

firebird             |ASSERT: file ../src/utilities/ibmgr/ibmgr.cpp line 707: in_sw = 20

firebird             |check /var/log/firebird/firebird.log file for errors

firebird             |can not start server      
```

```
ps aux | grep -v grep |grep  fb

firebird  7714  0.0  0.0  31592  1788 ?        S    06:41   0:00 /usr/share/firebird/../../../usr/bin/fbguard -f -p /var/run/firebird/firebird.pid

firebird  7715  0.0  0.0 226836  4024 ?        Sl   06:41   0:00 /usr/share/firebird/../../../usr/bin/fbserver

```

```
lsof -i :3050

COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

fbserver 7715 firebird    0u  IPv4 597260      0t0  TCP *:gds_db (LISTEN)

```

Reasumując, zarówno u mnie, jak i u autora strony na wiki Gentoo, bzdurne komunikaty w logach i przy starcie owszem, były, ale serwer chodzi.

I o to chodzi, żeby chodził i działał, prawda? 

Wiec radzę na przyszłość czytać ze zrozumieniem treści, albo grzecznie poprosić, żeby "program księgowy" producent przerobił na Postgresa albo Mysqla, z którymi żadnych problemów nie ma.

TYlko oczywiście, jak program robią istoty rozumne, to czają bazę, i np taki Snort może zapisywać logi do Mysqla, Postgresqla, albo innego serwera przez sterownik ODBC, bo po prostu ma zrobione biblioteki do poszczególnych serwerów.

Taki kombajn, jak OpenERP chodzi na Postgresql, ale u nas "mądrale" muszą zrobić na Firebirdzie, który nie jest szczególnie popularny, bo na Windows podobno działa, jakby w swoim kretyństwie zauważyli, że mogą użyć drivera ODBC, to można by ich wypociny używać na Mysqlu, Postgresie, Firebirdzie  i  OracleDB, a każdy pacjent miałby swobodny wybór serwera SQL.

Jakby interfejs do SQL umieścili w zewnętrznej bibliotece, jak w Snorcie,można by takie biblioteki napisać do wszystkich liczących się serwerów bazodanowych, i wybierać podczas instalacji, na jakim serwerze to ma chodzić.

Ale jak znam te "mądrale" wymagany jest Firebird 1.5 - który wyleciał ze wszystkich systemów z powodu błędów, i np Lefthand sypał u mnie błędami, jak próbowałem go kiedyś ożenić z Firebirdem 2.1.

Bo oczywiście stary Oscommerce z przed 5 lat bez problemu chodzi na Mysql -5.5, ale Lefthand wymagał ściśle Firebirda 1.5, i broń Boże nowszego.

Osobiście nie jestem pewien, czy nie lepiej napisać sobie program do księgowości samemu, niż płacić jakimś pajacom za wypociny.

To w sumie może z 50 czy 100 zapytań SQL, można polecieć w perlu lub pythonie, i może to działać albo jako program napisany w Qt czy GTK , albo chodzić przez CGI w przeglądarce.

Jak gotowy SQL-Ledger - który też można przerobić, żeby bardziej pasował do Polskiej księgowości, albo wziąść OpenERP - ten ma już polski moduł do rachunkowości. 

Pozdrawiam

 :Cool: 

----------

## qwaszs

No właśnie, tu chodzi o lefthand

----------

