Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witajcie
Macie moze jakies wytlumaczenie dlaczego zawartosc /etc/rc.local nie wykonuje sie wraz ze startem systemu ?
Ostatnio cos chcialem dopisac i lipa. Niestety nie dziala.
Plik /etc/init.d/rc.local wyglada tak :
#! /bin/sh ### BEGIN INIT INFO # Provides: rc.local # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Run /etc/rc.local if it exist ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/init/vars.sh . /lib/lsb/init-functions do_start() { if [ -x /etc/rc.local ]; then [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)" /etc/rc.local ES=$? [ "$VERBOSE" != no ] && log_end_msg $ES return $ES fi } case "$1" in start) do_start ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac
Wszystko wskazuje na to ze jezeli /etc/rc.local istnieje i jest wykonywalny to powinna byc uruchamiana jego zawartosc wraz ze startem systemu.
Niestety nie dziala. Ma ktos pomysl dlaczego tak moze byc /
Acha to jest raspbmc wiec moze jest cos charkterystycznego w tej dystrybucji o czym ja nie wiem ?
Dzieki za pomoc.
Offline
2139
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:22:10)
Offline
Ma inetd. To bazuje na debianie wheezy 7.8 armv6l. Postawione na RPI.
Offline
Jako ze nie wiem co robiłeś i co sprawdzałeś to klepne co mi do głowy wpadło. (częściowo trywialne, ale co mi szkodzi zapytać).
1.
Z palca odpala ?
/etc/init.d/rc.local start
2.
Moze jak modyfikowales plik rc.local to usunoles mu prawa wykonywania :-). (albo pierwsza linijka jest exit 0)
3.
Z jakimi run lvl skrypt się obecnie odpala ?
Offline
Brakuje ci na końcu.
exit 0
Offline
1.
Z palca odpala ?Kod:
/etc/init.d/rc.local start
Tak. Juz to wczesniej sprawdzalem i dlatego sie dziwie ze /etc/rc.local nie startuje z systemem
2.
Moze jak modyfikowales plik rc.local to usunoles mu prawa wykonywania :-). (albo pierwsza linijka jest exit 0)
Ma prawa wykonywania. Exit 0 jest ostatnia linijka. Wszystko dopisywalem bezposrednio nad exit 0.
3.
Z jakimi run lvl skrypt się obecnie odpala ?
Tak jak powinien 2 3 4 5
pi@raspbmc:~$ for i in 2 3 4 5; do ls -l /etc/rc$i.d/ | grep local; done lrwxrwxrwx 1 root root 18 Aug 3 23:11 S22rc.local -> ../init.d/rc.local lrwxrwxrwx 1 root root 18 Aug 3 23:11 S22rc.local -> ../init.d/rc.local lrwxrwxrwx 1 root root 18 Aug 3 23:11 S22rc.local -> ../init.d/rc.local lrwxrwxrwx 1 root root 18 Aug 3 23:11 S22rc.local -> ../init.d/rc.local
tajwan napisał(-a):
Brakuje ci na końcu.
Kod:
exit 0
Nie nie brakuje.
Ostatnio edytowany przez BodzioSZ (2015-08-17 00:32:00)
Offline
2140
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:22:12)
Offline
uzytkownikubunt napisał(-a):
Kod:
update-rc.d rc.local enable chkconfig rc.local onMoże po czymś takim i restarcie ruszy.
Dalej nie idzie. Generalnie to jakiejs tragedi niema bo sobie klepne z reki co mi potrzebne.
Denerwuje mnie tylko ze nie dziala tak jak powinno :)
Offline
Przecież wszelakie programu do startu systemu dopisuje się do pliku /etc/rc.local a nie do /etc/init.d/rc.local
Ten ostatni plik wczytuje tego pierwszego...
Offline
BodzioSZ napisał(-a):
Ma inetd. To bazuje na debianie wheezy 7.8 armv6l. Postawione na RPI.
Raspbian się nazywa.
Pokaż:
cat /etc/rc.local
Offline
Yampress napisał(-a):
Przecież wszelakie programu do startu systemu dopisuje się do pliku /etc/rc.local a nie do /etc/init.d/rc.local
Ten ostatni plik wczytuje tego pierwszego...
Wiem ja tylko klepnalem /etc/init.d/rc.local start zeby sprawdzic czy sie ykonuje zawartosc /etc/rc.local. No i jak z reki wpisze to dziala a przy starcie systemu juz nie.
mati75 napisał(-a):
Raspbian się nazywa.
Tak to okrojony Raspbian + Kodi
Pokaż:
Kod:
cat /etc/rc.local
pi@raspbmc:~$ cat /etc/rc.local #!/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. echo > /home/pi/testrc # to tylko testowy przyklad exit 0
Offline
echo > /home/pi/testrc
Coś takiego nigdy nie będzie działać.
Jak chcesz zrobić to:
touch /home/pi/testrc
Offline
U mnie wali, że nie może ścieżki znaleźć.
Offline
wciórności... aż sprawdzę jak wrócę do domciu, bo z czymś takim się nigdy nie spotkałem.
rozumiem że shell to bash?
Offline
2143
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:22:15)
Offline
nie wiem jak w *bsd, ale w pozostałych unixopodobnych /bin/sh to softlink do /bin/cośtam (albo jeszcze jakiś patent jeśli tubylczy fs nie obsługuje softlinków). a że spotkałem się z sytuacją że /bin/sh był linkiem do ash - wolę zapytać.
btw. wstawianie -e do rc.local to nie jest dobry pomysł...
dopisane po przeczytaniu dopisania:
wiesz, w tym przypadku mamy do czynienia z konkretną dystrybucją (raspbian/raspbmc) która z *bsd ma niewiele wspólnego, ale miewa swoje widzimisię :)
Ostatnio edytowany przez ethanak (2015-08-18 12:36:31)
Offline
ethanak napisał(-a):
rozumiem że shell to bash?
/etc/rc.local wykonuje się jako /bin/sh,
jako bash pięknie przechodzi.
Offline
2144
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:22:17)
Offline
to jak nie masz to zawrzyj paszczę, bo jak znam życie to raspbiana na oczy nie widziałeś a próbujesz się wykreować na eksperta...
ech... błogosławieni niech będą ci, którzy nie mając nic do powiedzenia nie ubierają tego w słowa...
Offline
Teoretycznie /bin/sh to symlink /bin/bash, ale bashem to nie jest. Chyba że mój system jest dziwny, bo u mnie domyślnym shellem jest zsh.
Offline
2145
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:22:18)
Offline
Jak widać w tej wersji dystrybucji domyślny shell (dla skryptów) to dash co jest skrótem od Debian Almquist Shell. Oczywiście nie oznacza to 100% pewności jaki domyślny shell jest w Raspbmc. Tutaj najlepiej, gdyby autor pokazał wyniki komend, które ja wpisałem na Debianie
pi@raspbmc:~$ ls -nh /bin/sh lrwxrwxrwx 1 0 0 4 Jan 1 1970 /bin/sh -> dash pi@raspbmc:~$ readlink -f /bin/sh /bin/dash
Sprawdziłem jak wygląda oryginalny plik /etc/rc.local
U mnie jest identyczny zarowno w rapsbmc jak i w jessie na lapku.
Czy działa echo? Tak
U mnie tez dziala echo ale jak klepne z reki. Przy starcie systemu nie dziala i nie wiem dlaczego.
Offline
To tak podsumowując:
1) przedstawiamy się:
pi@bufka ~ $ uname -a Linux bufka 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux pi@bufka ~ $ cat /etc/debian_version 7.6
(jajco dość stare ale w nowszych miałem problemy z 1wire, a na dłuższe niedziałanie maszynki zimą nie mogłem sobie pozwolić, a teraz mi się nie chce grzebać)
2) /etc/init.d/rc.local oryginalny, czyli:
#! /bin/sh ### BEGIN INIT INFO # Provides: rc.local # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Run /etc/rc.local if it exist ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/init/vars.sh . /lib/lsb/init-functions do_start() { if [ -x /etc/rc.local ]; then [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)" /etc/rc.local ES=$? [ "$VERBOSE" != no ] && log_end_msg $ES return $ES fi } case "$1" in start) do_start ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac
3) Mój /etc/rc.local (końcowe echo dodane specjalnie żeby sprawdzić):
#!/bin/sh # # 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 _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi for i in 17 27 19 20 12 26 6 13; do /usr/local/bin/gpio -g mode $i output /usr/local/bin/gpio -g write $i 0 done echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device sleep 5 /sbin/hwclock -s && touch /dev/shm/date_ok #touch /dev/shm/hostapd.enable amixer set Speaker 20 echo $SHELL > /home/pi/whatsmyshell.txt exit 0
4. I w efekcie po reboocie:
pi@bufka ~ $ cat whatsmyshell.txt /bin/sh
Ergo: echo działa
Przy okazji:
pi@bufka ~ $ ls -l /bin/sh lrwxrwxrwx 1 root root 4 sty 1 1970 /bin/sh -> dash
/edit/
A jeszcze przy okazji - jakby echo nie działało to bym nie miał zegarka, prawda?
Ostatnio edytowany przez ethanak (2015-08-19 17:40:26)
Offline
Strony: 1