Problem z autostartem lighttpd
|
demeo |
Dodano 23-10-2008 11:15
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Witam
Zainstalowałem sobie lighttpd jako serwer www z obsługą php. Serwer jest zainstlowany na karcie sd. Stworzyłem plik /etc/init.d/lighttpd o zawartości:
#!/bin/sh /etc/rc.common
START=10
STOP=15
start() {
echo start
/sd_card/usr/sbin/lighttpd -f /sd_card/etc/lighttpd.conf
}
stop() {
echo stop
}
nadałem mu prawa wykonywalności poprzez chmod +x /etc/init.d/lighttpd. Następnie uruchomiłem skrypt z opcją enable. Skrypt zrobił symlinka do katalogu /etc/rc.d/S10lighttpd. Czyli serwer lighttpd powinien się uruchamiać razem ze startem systemu. Niestety nie uruchamia się podczas startu systemu. Natomiast jeśli uruchomię plik etc/init.d/lighttpd start to serwer startuje poprawnie.
Czy ktoś widzi może jakiś mójł błąd? Ew. gdzie mogę szukać rozwiązania problemu.
Z góry dziękuję za odpowiedzi.
--
Pozdrawiam
Demeo
|
|
|
|
obsy |
Dodano 23-10-2008 11:20
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Zapewne kartę SD masz montowaną później niż w S10, prawda?
|
|
|
|
demeo |
Dodano 23-10-2008 12:26
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Karta SD jest dopisana do /etc/fstab
/dev/mmc/disc0/part1 /sd_card ext2 defaults 0 0
Moduł do mmc też się ładuje automatycznie, w zasadzie nawet nie wiem gdzie on jest dopisany. Bo nie istnieje dla niego wpis w /etc/modules.d
Więc teoretycznie karta sd jest inicjowana dużo wczesniej niż lighttpd.
BTW. Jak ustawić lighttpd by uruchamiał sie jako ostatnia aplikacja w "autostarcie".
--
Pozdrawiam
Demeo
|
|
|
|
obsy |
Dodano 23-10-2008 14:53
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
START=10
STOP=15
Właśnie tu.
Zmień start na 99, zrób disable i enable.
|
|
|
|
demeo |
Dodano 23-10-2008 15:30
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Niestety zmiana na 99 nie pomogła lighttpd nie startuje automatycznie.
--
Pozdrawiam
Demeo
|
|
|
|
obsy |
Dodano 23-10-2008 15:57
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
napisz sobie w /etc/init.d/lighttpd w funkcji start polecenie
mount > /tmp/plik.txt
Tak po prostu. I restart. Wtedy zobaczysz, czy przy starcie skryptu jest już zamontowana karta.
|
|
|
|
greeno |
Dodano 24-10-2008 18:01
|
User
Posty: 130
Dołączył: 05/10/2008 23:22
|
Strzał w 10, zahashowany był nawias - woops, mała pomyłka ;D
Edytowany przez greeno dnia 24-10-2008 22:37
|
|
|
|
obsy |
Dodano 24-10-2008 18:19
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Akurat nie o ten wątek chodzi, ale ok, wiem o co chodzi
|
|
|
|
demeo |
Dodano 03-11-2008 20:13
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Witam ponownie :)
Z chwili wolnego czasu postanowilem "odgrzac" troche temat.
Otoz po wrzuceniu komendy:
wyglada na to ze karta startuje wczesniej niz lighttpd i wszystko w tej kwestii jest ok w pliku /tmp/plik.txt wpis dotyczacy karty wyglada nastepujaco:
/dev/mmc/disc0/part1 on /sd_card type ext2 (rw)
Natomiast uruchomilem logowanie bledow w lighttpd i wpis poczas startu lighttpd wyglada nastepujaco:
2000-01-01 00:03:51: (log.c.75) server started
2000-01-01 00:04:03: (server.c.1470) server stopped by UID = 0 PID = 1
Czyli serwer podczas startu routera startuje, a nastepnie jest wylaczaczany.
A teraz ktos moze wie czemu serwer jest wylaczany tudziez wylacza sie samoczynnie?
--
Pozdrawiam
Demeo
|
|
|
|
demeo |
Dodano 04-11-2008 21:33
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Przeinstalowałem serwer lighttpd na pamięć routera i niestety dalej występuje ten sam problem serwer zaraz po starcie zostaje wyłączony. Logi wyglądają następująco:
2000-01-01 00:28:06: (log.c.75) server started
2000-01-01 00:31:24: (server.c.1470) server stopped by UID = 0 PID = 1
Czy ktoś może się orientuje jak to można zdiagnozować? Bo google niestety też milczą na ten temat.
--
Pozdrawiam
Demeo
|
|
|
|
demeo |
Dodano 07-11-2008 00:14
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Z bolem zainstalowalem 8.09rc1 majac nadzieje ze to rozwiarze problem autostartu serwera lighttpd. Niestety problem jest dalej ten sam i nie potrafie zmusic lighttpd by wystartowal razem z routerem.
Skrypt startowy wygląda następująco:
root@OpenWrt:~# cat /etc/init.d/lighttp
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=99
start() {
/sd/usr/sbin/lighttpd -f /sd/etc/lighttpd.conf
}
Serwer startuje na chwile nastepnie w logach wypluwa komunikat:
2008-10-23 17:22:28: (server.c.1475) server stopped by UID = 0 PID = 1
I sie wylacza. Oczywiście po starcie routera jak się na niego zaloguje i recznie odpale lighttpd to dziala on bez zazutu.
Przyjme z otwartymi ramionami kazda sugestie lub pomysl by zmusic lighttpd do startu wraz z routerem.
Edytowany przez demeo dnia 07-11-2008 00:32
--
Pozdrawiam
Demeo
|
|
|
|
obsy |
Dodano 07-11-2008 06:56
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Zainstalować go w pamięcie. A sądząc po wcześniejszych postach znów czegoś nie zlinkowałeś z karty.
|
|
|
|
demeo |
Dodano 08-11-2008 22:25
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Problem rozwiązany serwer lighttpd startuje razem z OpenWrt rozwiązaniem okazała się zmiana użytkownika i grupy z prawami którego startował serwer.
server.username = "light"
server.groupname = "nogroup"
Oczywiście wcześniej stowrzyłem takiego użytkownika w systemie oraz dodałem go do grupy root.
--
Pozdrawiam
Demeo
|
|
|
|
tymej |
Dodano 11-11-2008 15:00
|
User
Posty: 78
Dołączył: 26/07/2007 12:42
|
Jak dodać użytkownika/grupę? |
|
|
|
demeo |
Dodano 11-11-2008 15:18
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
W pliku
/etc/group dodajesz grupy
/etc/passwd dodajesz uzytkownikow
Opis plikow, co oznaczaja poszczegolne zmienne w nich znajdziesz w google.
--
Pozdrawiam
Demeo
|
|
|
|
tymej |
Dodano 11-11-2008 17:32
|
User
Posty: 78
Dołączył: 26/07/2007 12:42
|
Trochę poszperałem, ale nadal nic.
Na razie udało mi się zalogować na nowo stworzone konto, ale nadal lighttpd nie chce wystartować.
Mógłbyś zamieścić zawartość tych dwóch plików oraz (jak potrzebne) inne czynności? |
|
|
|
demeo |
Dodano 11-11-2008 22:55
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
zakładam że robisz to na 8.09rc1 więc skonfiguruj istniejący serwer www (httpd) by startował na porcie 81, zrobisz to poprzez
uci set httpd.cfg02c314.port=81
uci commit
i zrestartuj router następnie zaloguj się na adres routera poprzez przeglądarkę czyli http://ip_routera:81 i wejdz w sysloga i sprawdź jaki błąd wyrzuca Tobie lighttpd
W konfigu lighttpd ustaw rowniez logowanie poprzez:
server.errorlog = "/tmp/lighttpd_error.log"
Następnie podaj co wypluwa Tobie lighttpd w syslogu i we wlasnym pliku z bledami.
Wg. tego co podasz bedzie mozna dojsc gdzie lezy przyczyna, bo poki co nie podales zadnego objawu procz tego ze Ci lighttpd sie nie wlacza.
--
Pozdrawiam
Demeo
|
|
|
|
obsy |
Dodano 11-11-2008 22:59
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
uci set httpd.cfg02c314.port=81
Z tym ostrożnie, bo to może być inna sekcja :)
|
|
|
|
demeo |
Dodano 11-11-2008 23:51
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
U siebie na poczatek probowalem zmieniac port w /etc/init.d/httpd ale niestety system raczej nie czytal numeru portu z tego pliku, wiec zmienilem poprzez uci lub /etc/config/httpd.
Z tego widac ze niektore skrypty zostaly z poprostu przegrane z wczesniejszej wersji kamikaze bez ich modyfikacji.
--
Pozdrawiam
Demeo
|
|
|
|
tymej |
Dodano 12-11-2008 07:19
|
User
Posty: 78
Dołączył: 26/07/2007 12:42
|
W skrócie: to samo co u ciebie:
jak włączę ręcznie to działa, poprzez /etc/rc.d lub crona te same błędy co u ciebie.
Gdy dodałem użytkownika i grupę, przy ręcznym uruchomieniu jako ten użytkownik wywalało: "Are you nuts? Don't apply a SUID bit to this binary". Czyli pewnie źle dodałem użytkownika i grupę.
Port można zmienić w LuCI, co jest chyba trochę prostsze .
Edytowany przez tymej dnia 12-11-2008 07:24
|
|
|