Ubuntu 15.04 - /etc/rc.local nepracuje

beer

  • *****
  • 727
    • Zobrazit profil
Ubuntu 15.04 - /etc/rc.local nepracuje
« kdy: 27. 08. 2015, 20:01:16 »
Ahoj, nevykoná se příkaz v /etc/rc.local - nefunguje - ubuntu 15.04, v čem je problém?


Je jedno, co tam mám za příkaz, když spustím /etc/rc.local ručně, tak je to ok, ale nevykonává se při startu...


JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #1 kdy: 27. 08. 2015, 20:54:32 »
Tak pocitam, ze uz vsichni lesti kristalovou kouli (ta moje bohuzel je 140 km daleko, tak nepomuzu), protoze kdyz se nekdo pta takle blbe, ze sem ani neda ten rc.local, tak bez koule to nepujde. Ja mam v rc.loval pridane me vlastni radky a funguje mi to. Co delas blbe ty ale netusim.

Peter

Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #2 kdy: 27. 08. 2015, 21:34:27 »
Ahoj, nevykoná se příkaz v /etc/rc.local - nefunguje - ubuntu 15.04, v čem je problém?
Problém je v prístupe k návodu na použitie. Ubuntu 15.04 nepoužíva SysV init, a ani Upstart.

Je jedno, co tam mám za příkaz, když spustím /etc/rc.local ručně, tak je to ok, ale nevykonává se při startu...
Odporučím to prepísať ako Unit pre SystemD, návodov je k dispozícii požehnane.
https://wiki.ubuntu.com/SystemdForUpstartUsers

nobody

Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #3 kdy: 27. 08. 2015, 23:47:38 »
Kód: [Vybrat]
# ma rc.local x(spousteci) atribut?
sudo chmod +x /etc/rc.local

# zacina rc.local radkem "#!/bin/sh -e" ?
head -n1 /etc/rc.local

# konci rc.local radkem "exit 0" ?
tail -n1 /etc/rc.local

# mas aktivni rc-local.service pro kompatibilitu systemd s /etc/rc.local?
systemctl status rc-local.service

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #4 kdy: 28. 08. 2015, 00:12:24 »
# mas aktivni rc-local.service pro kompatibilitu systemd s /etc/rc.local?
systemctl status rc-local.service

Blbuntu nema systemctl.


nobody

Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #5 kdy: 28. 08. 2015, 01:13:48 »
# mas aktivni rc-local.service pro kompatibilitu systemd s /etc/rc.local?
systemctl status rc-local.service

Blbuntu nema systemctl.

*buntu od 15.04 preslo na systemd... viz: https://wiki.ubuntu.com/VividVervet/ReleaseNotes#Boot_and_service_management
btw: Blbuntu nevim, to je distro o kterem mluvis prevazne ty a dalsi zavistivci nebo snad blbci?

Krysa1

Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #6 kdy: 28. 08. 2015, 01:32:54 »
btw: Blbuntu nevim, to je distro o kterem mluvis prevazne ty a dalsi zavistivci nebo snad blbci?

To si nesmis tak brat, to jen mistni pitomec nahani mnozstvi prispevku. Jeste jsem od toho zbytecneho individua nevidel ani jeden, ktery by byl prinosny, nebo k veci. Proste ho ignoruj, mozna ho to potom prestane bavit, staci jednou pohnout kolecko dolu.

...
take predpokladam, ze problem bude souviset s novyn initem.

beer

  • *****
  • 727
    • Zobrazit profil
Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #7 kdy: 28. 08. 2015, 08:40:25 »
Ano, jedu na systemd. Z napsaného vyplívá, že spustitelný příznak mám - jelikož jde spustit ručně. Nespouští se ale při startu.

Kód: [Vybrat]
root@medved-desktop:/# systemctl status rc-local.service                                                     

● rc-local.service - /etc/rc.local Compatibility                                                             

   Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled)                     

   Active: failed (Result: exit-code) since Pá 2015-08-28 08:06:06 CEST; 32min ago                           

                                                                                                             

srp 28 08:06:06 medved-desktop systemd[1]: Starting /etc/rc.local Compatibility...                           

srp 28 08:06:06 medved-desktop rc.local[898]: 28/Aug/2015 08:06:06 [supernode.c: 476] Supernode ready:...UDP]

srp 28 08:06:06 medved-desktop rc.local[898]: tor: žádný proces nenalezen                                   

srp 28 08:06:06 medved-desktop systemd[1]: rc-local.service: control process exited, code=exited status=1   

srp 28 08:06:06 medved-desktop systemd[1]: Unit rc-local.service entered failed state.                       

srp 28 08:06:06 medved-desktop systemd[1]: rc-local.service failed.                                         

Hint: Some lines were ellipsized, use -l to show in full.           

trubicoid2

Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #8 kdy: 28. 08. 2015, 11:14:52 »
asi mas spatne cestu k tor? v tech init skriptech radeji pouzivej plnou cestu, ti demoni to vetsinou nepousti s uzivatelskou promennou PATH; t.j. misto tor napis neco jako /usr/bin/tor

jinak mozna tor by se mozna mel spoustet nejakym tor demonem misto rc.local? v bubuntu a systemd nevim; gugl rika neco jako v /etc/default/tor napsat RUN_DAEMON="yes" a pak jeste asi neco s tim systemd

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #9 kdy: 28. 08. 2015, 13:11:00 »
*buntu od 15.04 preslo na systemd... viz: https://wiki.ubuntu.com/VividVervet/ReleaseNotes#Boot_and_service_management
btw: Blbuntu nevim, to je distro o kterem mluvis prevazne ty a dalsi zavistivci nebo snad blbci?

No a? Rc.local ma porad spoustet, je tam na to sluzba. Me service rc.local start rc.local spusti, stejne tak pri bootu.

To si nesmis tak brat, to jen mistni pitomec nahani mnozstvi prispevku. Jeste jsem od toho zbytecneho individua nevidel ani jeden, ktery by byl prinosny, nebo k veci. Proste ho ignoruj, mozna ho to potom prestane bavit, staci jednou pohnout kolecko dolu.

Jiste, mas naprostou pravdu. *buntu je skvele distro, hlavne pro zacatecniky, kteri se v nem hodne nauci. Treba az budou resit, proc jim nejde externi mys par vterin pote, co s ni prestanou soupat, kdyz notebook jede na baterku. Nebo az budou resit, proc jim jede scanner jen pod rootem. Nebo jeden z rady dalsich problemu, na ktere drive nebo pozdeji narazi kazdy, kdo stroj nepouziva jen na lezeni po webu.


Jinak nevim, o cem je se tu bavite, protoze beer stale taji svuj rc.local.

nobody

Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #10 kdy: 28. 08. 2015, 15:56:36 »
Ano, jedu na systemd. Z napsaného vyplívá, že spustitelný příznak mám - jelikož jde spustit ručně. Nespouští se ale při startu.

Z napsaneho vyplivalo ze jsi to pustil, nebylo jasne ale jak, mohl si to poustet zpusobem kdy neni treba x napr. "sh /etc/rc.local", nebo "bash /etc/rc.local", tedy tim ze by jsi poustel pres sh nebo bash tak pak to i nahrazuje shell interpret kterej je ve scriptu na prvnim radku a ktery se vola pri pousteni pres pouhej nazev skriptu s x atributem...

Kód: [Vybrat]
[...]
   Active: failed (Result: exit-code) since Pá 2015-08-28 08:06:06 CEST; 32min ago                           

                                                                                                             

srp 28 08:06:06 medved-desktop systemd[1]: Starting /etc/rc.local Compatibility...                           

srp 28 08:06:06 medved-desktop rc.local[898]: 28/Aug/2015 08:06:06 [supernode.c: 476] Supernode ready:...UDP]

srp 28 08:06:06 medved-desktop rc.local[898]: tor: žádný proces nenalezen                                   
[...]
Hint: Some lines were ellipsized, use -l to show in full.           
Nicmene z toho jasne vyplyva ze rc.local ti pracuje/pousti se, ale mas v nem volani neceho co v tu chvili nemuze najit kvuli absenci nastavene PATH, viz trubicoid2...

aby jsi mel jistotu, zakomentuj vse co jsi do rc.local pridal a vloz tam radek:
Kód: [Vybrat]
touch /tmp/rc_local_bezela po nabehnuti se podivej ze v /tmp ten soubor mas ;)


beer

  • *****
  • 727
    • Zobrazit profil
Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #11 kdy: 28. 08. 2015, 16:10:38 »
asi mas spatne cestu k tor? v tech init skriptech radeji pouzivej plnou cestu, ti demoni to vetsinou nepousti s uzivatelskou promennou PATH; t.j. misto tor napis neco jako /usr/bin/tor

jinak mozna tor by se mozna mel spoustet nejakym tor demonem misto rc.local? v bubuntu a systemd nevim; gugl rika neco jako v /etc/default/tor napsat RUN_DAEMON="yes" a pak jeste asi neco s tim systemd

co se týká toru, mám tam

Kód: [Vybrat]
killall tor &> /dev/null &
Důvod - spouštím raději tor přes vytvořeného uživatele tor s minimálním oprávněním, až po nalogování uživatele - toto spouštění neřeším přes /etc/rc.local, ale přes .profile.

Předpokládám, že i kdybych neměl něco úplně správně v tom souboru, že by se to mělo vykonat, protože když to spustím ručně jako root nebo přes sudo, tak je to OK. Proč sem nechci vkládat celý obsah  toho souboru - 1. důvod nejsem teď u toho pc a 2. v tom souboru mám hesla a názvy kominit k vpn n2n, ip adresu soukromého n2n serveru atd. 3. myslím, že samotný obsah by neměl mít vliv, když je to pod rootem normálně spustitelné. Pletu se?

Může mít souvislost, že vlastník souboru /etc/rc.local je root  a nastavená práva jsou 700? Z důvodu bezpečnosti chci, aby soubor byl čitelný, zapisovatelný a spustitelný pouze pro uživatele root.

Ano, jedu na systemd. Z napsaného vyplívá, že spustitelný příznak mám - jelikož jde spustit ručně. Nespouští se ale při startu.

Z napsaneho vyplivalo ze jsi to pustil, nebylo jasne ale jak, mohl si to poustet zpusobem kdy neni treba x napr. "sh /etc/rc.local", nebo "bash /etc/rc.local", tedy tim ze by jsi poustel pres sh nebo bash tak pak to i nahrazuje shell interpret kterej je ve scriptu na prvnim radku a ktery se vola pri pousteni pres pouhej nazev skriptu s x atributem...
spustil jsem to přesně takto:
Kód: [Vybrat]
sudo su
moje heslo
/etc/rc.local

Shell používám bash, hlavička /etc/rc.local je přesně
Kód: [Vybrat]
#!/bin/sh -e
Nicmene z toho jasne vyplyva ze rc.local ti pracuje/pousti se, ale mas v nem volani neceho co v tu chvili nemuze najit kvuli absenci nastavene PATH, viz trubicoid2...

aby jsi mel jistotu, zakomentuj vse co jsi do rc.local pridal a vloz tam radek:
Kód: [Vybrat]
touch /tmp/rc_local_bezela po nabehnuti se podivej ze v /tmp ten soubor mas ;)

OK. To zní rozumně, něco podobného mám na řádku před exit 0. Akorát tam mám výstup s časem zapnutí pc, který je přesměrovaný někam do /var/www/uptime.html (přesnou cestu z hlavy nevím, nicméně když ručně spustím, tak se soubor aktualizuje), přesměrovávám přes příkaz &>> /var/www/uptime.html . Kdybych tam měl na nějakém řádku u nějakého úkonu chybu, proč by na tom řádku ale selhalo a ten příkaz

beer

  • *****
  • 727
    • Zobrazit profil
Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #12 kdy: 28. 08. 2015, 16:14:38 »
Kdyby to killall tor bylo špatně (neběžel by tor), který by to mělo killnout, tak by to mělo pouze do /dev/null poslat chybovou hláku a mělo by to jet dál, ne?

nobody

Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #13 kdy: 28. 08. 2015, 16:41:34 »
Shell používám bash, hlavička /etc/rc.local je přesně
Kód: [Vybrat]
#!/bin/sh -e
Ta ma uvaha byla jen kdyz bys poustel pomoci "interpret skript" protoze pak to pouzije ten interpret, misto toho co mas v hlavicce a tim by se to mohlo lisit, protoze system pri startu to vola prave a jen pres ten interpret v hlavicce, prave a jen pokud je script s x atributem

Kód: [Vybrat]
killall tor &> /dev/null &

tady bude ten problem ;) protoze v hlavicce mas "sh -e" znamena to ze pri KAZDEM navratovem kodu >0 (neosetrenem) se okamzite zastavi pokracovani rc.local

pokud by tor bezel, killall vrati exit code 0 a jede se dal, tim ze nebezel vratil exit 1, dale se nic z rc.local neprovedlo a systemd service to vratilo jako failed...

resenim by mohlo byt prenastavit exit code po killall v pripade ze bude >0(tedy nemel co zabit, nebo se to nepodarilo) na 0 pomoci true, tedy zmenit ten radek na(zaroven misto presmerovani do null, pouzit primo k tomu urcenej parametr q aby nehlasil "nic sem nezabil"):
Kód: [Vybrat]
killall -q tor || true

nobody

Re:Ubuntu 15.04 - /etc/rc.local nepracuje
« Odpověď #14 kdy: 28. 08. 2015, 16:44:23 »
pripadne nekompromisni zabiti pomoci SIGKILL (9)
Kód: [Vybrat]
killall -q -9 tor || true