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
Użytkownik

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
;;
esacWszystko 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




Zbanowany





2139
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:22:10)
Offline
Użytkownik

Ma inetd. To bazuje na debianie wheezy 7.8 armv6l. Postawione na RPI.
Offline



Zubr, bydle na etacie.




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



mega boss




Brakuje ci na końcu.
exit 0
Offline
Użytkownik

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




Zbanowany





2140
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:22:12)
Offline
Użytkownik

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




Imperator





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




Psuj





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
Użytkownik

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




Psuj





echo > /home/pi/testrc
Coś takiego nigdy nie będzie działać.
Jak chcesz zrobić to:
touch /home/pi/testrc

Offline



Użytkownik




Psuj





U mnie wali, że nie może ścieżki znaleźć.

Offline



Użytkownik
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




Zbanowany





2143
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:22:15)
Offline



Użytkownik
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




Psuj





ethanak napisał(-a):
rozumiem że shell to bash?
/etc/rc.local wykonuje się jako /bin/sh,
jako bash pięknie przechodzi.

Offline



Użytkownik




Zbanowany





2144
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:22:17)
Offline



Użytkownik
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




Psuj





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




Zbanowany





2145
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:22:18)
Offline
Użytkownik

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



Użytkownik
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
;;
esac3) 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 04. 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