Automatyczny start serwera Postgresql przy uruchamianiu systemu - Linux Mint

Problemy dotyczące innych systemów operacyjnych
piotrku
Posty: 4
Rejestracja: 27 listopada 2011, 22:45

Automatyczny start serwera Postgresql przy uruchamianiu systemu - Linux Mint

Post autor: piotrku »

Witam.
Mam problem z "namówieniem" serwera Postgresql do automatycznego startu przy ładowaniu systemu.
Odpowiednie wpisy do katalogów z nadanymi uprawnieniami do wykonywania skryptów istnieją, mianowicie:
(/etc/init.d oraz poszczególne poziomy uruchamiania) - odpowiednie wpisy dodane automatycznie podczas instalacji poprzez menedżera pakietów - postgresql 8.4 instalowany w całości przez menedżera pakietów synaptic.
Serwer startuje baz zarzutu "z palca" z poziomu konta root (sudo):

Kod: Zaznacz cały

/etc/init.d/postgresql start
Zależy mi jednak na tym, żeby "wstawał" automatycznie przy starcie systemu i nie koniecznie jako root, a w kontekście użytkownika postgres. Równocześnie nie chcę "odzierać " go z zabezpieczeń, a więc rezygnowanie z zabezpieczenia serwera użytkownikiem postgres nie wchodzi w grę. Zakładam, że jak najbardziej możliwa jest taka konfiguracja kiedy serwer startuje już na starcie systemu bez względu jaki użytkownik loguje się do systemu, a serwer wciąż pozostaje zabezpieczony "superużytkownikiem" - postgres ze swoim hasłem.

Konsolowe:

Kod: Zaznacz cały

update-rc.d postgresql enable
daje w wyniku:

Kod: Zaznacz cały

update-rc.d: warning: postgresql start runlevel arguments (none) do not match LSB Default-Start values (2 3 4 5)
update-rc.d: warning: postgresql stop runlevel arguments (none) do not match LSB Default-Stop values (0 1 6) Enabling system startup links for /etc/init.d/postgresql ... Removing any system startup links for /etc/init.d/postgresql ...   /etc/rc0.d/K21postgresql   /etc/rc1.d/K21postgresql   /etc/rc2.d/S19postgresql   /etc/rc3.d/S19postgresql   /etc/rc4.d/S19postgresql   /etc/rc5.d/S19postgresql   /etc/rc6.d/K21postgresql Adding system startup for /etc/init.d/postgresql ...   /etc/rc0.d/K21postgresql -> ../init.d/postgresql   /etc/rc1.d/K21postgresql -> ../init.d/postgresql   /etc/rc6.d/K21postgresql -> ../init.d/postgresql   /etc/rc2.d/S19postgresql -> ../init.d/postgresql   /etc/rc3.d/S19postgresql -> ../init.d/postgresql   /etc/rc4.d/S19postgresql -> ../init.d/postgresql   /etc/rc5.d/S19postgresql -> ../init.d/postgresql
serwer: Postgresql wer. 8.4
system: Linux Mint wer. 10
Piotr K
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Kod: Zaznacz cały

man update-rc.d

Kod: Zaznacz cały

PRZYKŁADY
       Utworzenie domyślnych dowiązań:
       update-rc.d blabla defaults
       Odpowiednikiem tego polecenia będzie:
       update-rc.d blabla start 20 2 3 4 5 . stop 20 0 1 6 .
       Bardziej typowa wersja tego polecenia, używająca  wprost  zbioru  argu‐
       mentu:
       update-rc.d blabla start 30 2 3 4 5 . stop 70 0 1 6 .
       Usuwa  wszystkie  dowiązania dla skryptu (zakładając, że blabla zostało
       już usunięte):
       update-rc.d blabla remove
       Przykład wyłączania usługi:
       update-rc.d -f blabla remove
       update-rc.d blabla stop 20 2 3 4 5 .
       Przykład polecenia instalującego systemowy  skrypt  inicjacji-i-zamyka‐
       nia:
       update-rc.d blabla start 45 S . start 31 0 6 .
       Przykład  polecenia  wyłączającego systemowy skrypt inicjacji-i-zamyka‐
       nia:
       update-rc.d -f blabla remove
       update-rc.d blabla stop 45 S .
piotrku
Posty: 4
Rejestracja: 27 listopada 2011, 22:45

Post autor: piotrku »

Dowiązania na domyślnych poziomach istnieją, polecenie:

Kod: Zaznacz cały

update-rc.d postgresql defaults
zwraca:

Kod: Zaznacz cały

System start/stop links for /etc/init.d/postgresql already exist.
Died at /usr/sbin/update-rc.d line 57.
A postgresql wciąż nie inicjuje się na starcie.

Piotr
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Link do uruchamiania jest stworzony, sprawdź logi, odinstaluj i zainstaluj bazę od nowa.
Olivia
Beginner
Posty: 106
Rejestracja: 11 lutego 2007, 20:19
Lokalizacja: Kraków

Post autor: Olivia »

Albo napisz nowy skrypt startowy, który np. odczekuje 60s od startu systemu i dopiero wtedy uruchamia bazę danych.
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Olivia pisze:Albo napisz nowy skrypt startowy, który np. odczekuje 60s od startu systemu i dopiero wtedy uruchamia bazę danych.
A to w jakim celu, minutę po?
Olivia
Beginner
Posty: 106
Rejestracja: 11 lutego 2007, 20:19
Lokalizacja: Kraków

Post autor: Olivia »

Skoro nie działa od razu... Ja bym tak spróbowała. A w skrypcie dała:

Kod: Zaznacz cały

/etc/init.d/postgresql start
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Można przestawić kolejność uruchamiania, a według Twojej metody edytować istniejący skrypt i dodać:

Kod: Zaznacz cały

sleep 60

piotrku, a co w logach jest?
piotrku
Posty: 4
Rejestracja: 27 listopada 2011, 22:45

Post autor: piotrku »

Witam.

Chyba namierzyłem problem, był tutaj:

Kod: Zaznacz cały

2011-12-10 01:32:54 CET FATAL:  could not create shared memory segment: Z?y argument
2011-12-10 01:32:54 CET DETAIL:  Failed system call was shmget(key=5432001, size=36880384, 03600).
2011-12-10 01:32:54 CET HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMMAX.  To reduce the request size (currently 36880384 bytes), reduce PostgreSQL's shared_buffers parameter (currently 4096) and/or its max_connections parameter (currently 103).
Serwer po zmianach pierwszy raz uruchomił się sam.

Niemniej dziękuję za wsparcie, pozdrawiam.
Piotr
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Dlatego zawsze jak sie coś nie uruchamia nie należy szukać problemu w powietrzu albo pytać wróżki tylko zajrzeć w logi a aplikacja sama powie co jej dolega.
ODPOWIEDZ