Fórum Root.cz

Hlavní témata => Distribuce => Téma založeno: Le-Ze 19. 01. 2016, 20:39:01

Název: rc.local - Raspberry Pi
Přispěvatel: Le-Ze 19. 01. 2016, 20:39:01
Zdravím.
Již několikrát se mi stalo že mi přestal fungovat rc.local.
Mam systém zazálohovaný a vždy jsem to přehral.
Dnes se to stalo znovu a mně zajím,jak je složité to znovu zprovoznit?
Název: Re:rc.local - Raspberry Pi
Přispěvatel: Trubicoid2 19. 01. 2016, 21:41:16
Přestal fungovat jak? Nepouští se? Zmizel?
A jakej máš os?
Název: Re:rc.local - Raspberry Pi
Přispěvatel: Le-Ze 19. 01. 2016, 22:12:12
Přestal fungovat jak? Nepouští se? Zmizel?
A jakej máš os?

Potřebují spustit můj sh skript při spouštění a nefunguje to.
Vytvořil jsem sh skript Run.

/home/pi/Run přes terminal funguje (spusti se)

V rc.local
home/pi/Run start
/home/pi/Run start

Nespustí se a  v syslog nevidím žádnou zmínku o souboru Run.

Dočet jsem se že se rc.local spouští jako služba přes etc/init.d/*rc.local
http://www.fastimages.eu/?v=eeerwr.jpg

A funkčnost zjistím pomocí for i in 2 3 4 5; do ls -l /etc/rc$i.d/ | grep local; done
http://www.fastimages.eu/?v=dddddtxt.jpg
Ale to už je nad me znalostí
Název: Re:rc.local - Raspberry Pi
Přispěvatel: johanson14 19. 01. 2016, 22:38:15
Ten tvoj skript ma root opravnenia?
Na tom druhom obrazku vidis, ze to potrebuje roota.
Název: Re:rc.local - Raspberry Pi
Přispěvatel: JardaP . 19. 01. 2016, 22:49:03
V rc.local
home/pi/Run start
/home/pi/Run start

To je jako co? Co ocekavate od "home/pi/Run start" bez lomitka na pocatku?

Do rc.local dejte neco jako

date > /tmp/lastrun.log

Po restartu se podivejte, jestli tam takovy soubor je a obahuje cas odpovidajici poslednimu restartu. Pokud tam je, hledejte chybu jinde, nez v rc.local. A dejte sem ten vas tajny skript, my se vam smat nebudeme a treba tam nekdo najde chybu.

Ten tvoj skript ma root opravnenia?
Na tom druhom obrazku vidis, ze to potrebuje roota.

Spousti se to z /etc/rc.local a ten jede pod rootem, pojedou pod nim tedy i skripty, ktere zavola.
Název: Re:rc.local - Raspberry Pi
Přispěvatel: Jenda 19. 01. 2016, 23:55:58
Jarda: Ještě bych ten "date > /tmp/blabla" dal na začátek toho spouštěného skriptu, ať se zjistí, jestli se to spustilo a zheblo to až někde uprostřed, nebo se to ani nespouští
Název: Re:rc.local - Raspberry Pi
Přispěvatel: Trubicoid2 20. 01. 2016, 07:05:55
Jeste řekni, co to je za raspbian a dej sem obsah rc.local. Ale ne obrázkem, normalne to označ v putty a sem nakopiruj
Název: Re:rc.local - Raspberry Pi
Přispěvatel: Le-Ze 20. 01. 2016, 07:48:09
V rc.local
home/pi/Run start
/home/pi/Run start

To je jako co? Co ocekavate od "home/pi/Run start" bez lomitka na pocatku?
Mam ještě jedno raspi, které jede v pohodě už dlouho a mam v rc.local
etc/init.d/samba start
home/pi/Run start

Vše se spouští

Když skripty porovnám - úplně stejné.

Žádný lastrun.log se nevytvoří.
V syslog také žádná zmínka o lastrun.log

Kód: [Vybrat]
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
date > /tmp/lastrun.log

_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0
Dal jsem to na začatek, jak psal Jenda.
Jinak mezi fi - exit 0
Název: Re:rc.local - Raspberry Pi
Přispěvatel: JardaP . 20. 01. 2016, 11:16:08
Mam ještě jedno raspi, které jede v pohodě už dlouho a mam v rc.local
etc/init.d/samba start
home/pi/Run start

Vše se spouští

Tak to se vam spousti ciste diky vhodnym meteorologickym podminkam, zejmena vysi rosneho bodu. Principielne kdyz se rozbehne rc.local, neni definovan pracovni adresar. Vam to bezi jen diky tomu, ze ten adesar je zrovna na potvoru /. Takze si tam laskave dopiste uvodni lomitka, nepsat uplnou cestu je blby napad.

Citace
Žádný lastrun.log se nevytvoří.
V syslog také žádná zmínka o lastrun.log

Kód: [Vybrat]
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
date > /tmp/lastrun.log

_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0
Dal jsem to na začatek, jak psal Jenda.
Jinak mezi fi - exit 0

Tohle nejak ńechapu. Ja mel na mysli, abyste sem dal ten svuj skript, ne rc.local, navic nejaky jiny, ve kterem nevidim volani toho vaseho skriptu. A to printf "My IP address is %s\n" "$_IP" jste tam dal vy? Nejak nechapu, kam se to ma vytisknout, kdyz to nebezi v terminalu.  Ale je divne, ze se v /tmp nevytvoril zaznam s datem. Takze vam asi opravdu nebezi rc.local a jestli mate systemd, tak by vam to urcite vysvetlil soudruh Poettering. Eventuelne vam chybi utilita date, coz si muzete vyzkouset spustenim z terminalu. Nebo by to chtelo napsat uplnou cestu, tedy asi /bin/date, protoze mozna pri behu rc.local neni jeste nastavena nejaka cesta nebo co.
Název: Re:rc.local - Raspberry Pi
Přispěvatel: Le-Ze 20. 01. 2016, 11:33:18
Tohle nejak ńechapu. Ja mel na mysli, abyste sem dal ten svuj skript, ne rc.local, navic nejaky jiny, ve kterem nevidim volani toho vaseho skriptu. A to printf "My IP address is %s\n" "$_IP" jste tam dal vy? Nejak nechapu, kam se to ma vytisknout, kdyz to nebezi v terminalu.  Ale je divne, ze se v /tmp nevytvoril zaznam s datem. Takze vam asi opravdu nebezi rc.local a jestli mate systemd, tak by vam to urcite vysvetlil soudruh Poettering. Eventuelne vam chybi utilita date, coz si muzete vyzkouset spustenim z terminalu. Nebo by to chtelo napsat uplnou cestu, tedy asi /bin/date, protoze mozna pri behu rc.local neni jeste nastavena nejaka cesta nebo co.

Ten rc.local tu chtěl Trubicoid2
Jeste řekni, co to je za raspbian a dej sem obsah rc.local. Ale ne obrázkem, normalne to označ v putty a sem nakopiruj

Ten rc.local je orginal, jen jsem tam dal to date > /tmp/lastrun.log
To že se nespouští jsem již pochopil také, ale proč?
Název: Re:rc.local - Raspberry Pi
Přispěvatel: trubicoid2 20. 01. 2016, 11:57:02
no tak jednak oddelej na zacatku v rc.local to "-e" za sh, to zpusobi, ze po chybe proste skonci a nedodela cely skript

pak prikazy pis plnou cestou, tedy /bin/date > /tmp/lastrun.log

a rekni, co rika
Kód: [Vybrat]
ls -l /etc/init.d/rc.local
a
Kód: [Vybrat]
chkconfig | grep rc.local jestli ho nemas tak
Kód: [Vybrat]
sudo apt-get install chkconfig
Název: Re:rc.local - Raspberry Pi
Přispěvatel: nobody 20. 01. 2016, 11:59:53
jestli je tam sYsTeMd tak mu mozna hrablo a vypnul rc.local sluzbu, zapnout by mela jit pomoci:
Kód: [Vybrat]
systemctl enable rc-local.service
Název: Re:rc.local - Raspberry Pi
Přispěvatel: typecek 20. 01. 2016, 12:25:51
ak je tam systemd tak by som radsej vytvoril normalny nazov.service kde bude definovane co sa ma spustit a kedy.. Ak je to sluzba ktora pouziva siet a IP adresu osvedcilo sa mi pri problemoch pridat Wants=network-online.target alebo nejak tak.
Vsetko bez problemov. Ak nie je systemd tak vytvorit skript do /etc/init.d/aaa a povolit cez chkconfig na dany runlevel.
Takisto odporucam pisat plne nazvy v skriptoch t.j. nie date ale /bin/date ..

A prehistoricke systemy kde nie je systemd uz prosim vypnite :D
Název: Re:rc.local - Raspberry Pi
Přispěvatel: moor 20. 01. 2016, 12:30:47
rc.local bude fungovat na Wheezy a starších. Jenom připomínám, že by rc.local i z něj spouštěné skripty měly být spustitelné. Mě to na rpi (raspbian wheezy) funguje bez problémů.
Název: Re:rc.local - Raspberry Pi
Přispěvatel: Le-Ze 20. 01. 2016, 13:30:58
Tady na tom mam také wheezy.
Na tom druhem mam také wheezy
A mam také to nové raspi 2 s jessie
Všude to funguje.
I tu na tom to fungovala.
Za 3 roky se mi stalo že to už 3X padlo.
Vždy pří update -upgrade
http://www.fastimages.eu/?v=kkkkksfs.jpg
Název: Re:rc.local - Raspberry Pi
Přispěvatel: trubicoid2 20. 01. 2016, 14:13:58
jo, mas to dobre; ted oddelej ten -e a plny cesty

pri upgrade to pada tim, ze se dodrbe FS na SD, je potreba vyzkouset jiny karty, vetsinou se drbou ty rychlejsi, novejsi, starsi byvaji lepsi

jestli teda neni FS naborenej?
Kód: [Vybrat]
sudo touch /forcefsck;sync;sudo reboot
a jadro mas novy?
Kód: [Vybrat]
sudo apt-get install rpi-update;sudo rpi-update;sync;sudo reboot
Název: Re:rc.local - Raspberry Pi
Přispěvatel: Le-Ze 20. 01. 2016, 15:11:05
-e pryč a úplně nahoře /bin/date > /tmp/lastrun.log
V tmp lastrun.log není a v sys.log žadná zmínka a něm také ne.
Název: Re:rc.local - Raspberry Pi
Přispěvatel: trubicoid2 20. 01. 2016, 16:11:02
kontrolu /forcefsck jsi udelal?

kdyz das
Kód: [Vybrat]
ls /lost+found tak je tam hodne veci?

asi mas hodne naborenej system, je potreba najit balicky, co jsou naboreny a preinstalovat, ja to delal nekolikrat

osvedceny postup:
Kód: [Vybrat]
sudo apt-get install debsums
Kód: [Vybrat]
sudo debsums -s -a 2> broken.log
Kód: [Vybrat]
sort broken.log | less
ignorujes soubory v /boot a /opt/vc (ty se tam dostanou tim rpi-update)
dale ignorujes soubory v /etc o kterych vis, ze si je menil

no a u ostatnich vsech, kde je missing nebo changed nainstalujes ten balicek (v zavorce napsany jakej) znova

Kód: [Vybrat]
sudo apt-get install --reinstall balicke
a tak to udelas pro vsechny
Název: Re:rc.local - Raspberry Pi
Přispěvatel: Le-Ze 20. 01. 2016, 18:05:17
kontrolu /forcefsck jsi udelal?
kdyz das
Kód: [Vybrat]
ls /lost+found tak je tam hodne veci?
Úplně prázden.
No nic, asi to přehrají novým systémem a zkusím tam strčit jessie.
Když už se mi to stalo 3X, chtěl jsem zjistit kde je problém a zda bych byl přiště schopen to spravit.
I tak moc děkují za rady a ochotu.