Portál AbcLinuxu, 8. května 2025 18:27

Dotaz: Vyčkávání v rc.local

10.10.2017 20:58 Vašek
Vyčkávání v rc.local
Přečteno: 446×
Odpovědět | Admin
Zdraví všechny.

Řeším takový problém,s kopírováním složek během startu PC.

O co jde? Potřebuji při startu zkopírovat a nahradit celý profil ze zálohy, tak aby byl vždy po startu stejný.

Chtěl jsem to realizovat přes sudo rm a cp -r ....., nahradit ,potom přiřadit práva a je to, jenomže není.

Pokud kopíruju celý profil, nestihne zkopírovat vše a nejde se přihlásit, pokud zkopíruju jen třeba plochu - tedy malou složku to v pohodě.

Zkoušel jsem to přes sleep zpomalit start, bez úspěchu. Lze zatsavis boot než proběhne kopírování Nějaký nápad? Nebo je to slepá ulička a realizovat to jinak.

Dík V.

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Heron avatar 10.10.2017 21:11 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Vyčkávání v rc.local
Odpovědět | | Sbalit | Link | Blokovat | Admin
Raději než pozastavit start je lepší použít fs s podporou snapshotů (třeba btrfs) a udělat clon subvolume s tím připraveným profilem. A udělat správně závislosti mezi službama. Sleepy se fakt pro synchronizaci startu služeb nepoužívají.
Heron
11.10.2017 09:50 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Vyčkávání v rc.local
spomalování speepem fakt není dobrý nápad. Snapshoty s btrfs jak píše horon jsou dobré. Další možnost je ujasnit si, kdy to chcešš ukízet. Stejně jako při staru můžeš uklízet i při logoutu. Pak to budeš mít vždy ve stavu, když není uživatel příhlášen, je jeho profil nastaven na čistý nový stav. Když prazuce jeho profil se mění, když se odhlašuje systém uklidí změny, které provedl.
11.10.2017 14:17 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Vyčkávání v rc.local
kruci měl jsem málo času a těch překlepů jsou mraky.
k3dAR avatar 11.10.2017 02:35 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Vyčkávání v rc.local
Odpovědět | | Sbalit | Link | Blokovat | Admin
podle dementnosti chovani predpokladam systemd, takze zkus vytvorit soubor:
/etc/systemd/system/lightdm.service.d/override.conf
s obsahem:
[Unit]
After=rc-local.service
porad nemam telo, ale uz mam hlavu... nobody
11.10.2017 06:24 Jmk
Rozbalit Rozbalit vše Re: Vyčkávání v rc.local
http://wiki.ubuntu.cz/nezni%C4%8Diteln%C3%BD_desktop
michich avatar 11.10.2017 10:25 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Vyčkávání v rc.local
Tu závislost bych přidal raději do systemd-user-sessions.service. Všechny getty i *dm jsou řazeny za tím.
11.10.2017 13:36 SE
Rozbalit Rozbalit vše Re: Vyčkávání v rc.local
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebylo by lepší to uělat přes mv ?

mv nic nekopíruje pokud to bude v rámci stejného svazku. Při startu jen přejmenovat starý profil a přesunout na požadované místo nový profil. A při vypnutí "uklidit" to už na to bude čas. Smazat starý profil a připravit si ze zálohy čistý profil pro další přesun.
11.10.2017 15:30 jiwopene | skóre: 31 | blog: Od každého trochu…
Rozbalit Rozbalit vše Re: Vyčkávání v rc.local
Odpovědět | | Sbalit | Link | Blokovat | Admin
Buď mv nebo použít unionfs (spojí několik složek do jedné).
  1. Smaže/přesune se /tmp/vasek a udělá se nový
  2. Přimountuje se unionfs na /home/vasek (data bere z /usr/share/vasek_home [šablona] a /tmp/vasek [aktuální profil])
  3. Přihlásí se
Cesty jsou jen návrhem. Šablona MUSÍ být read-only!

Nebo se dá použít šablona (squashfs či něco jiného, co je readonly) spojená pomocí unionfs s nějakým "ramdiskem" (tmpfs, ...).
.sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
11.10.2017 15:58 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Vyčkávání v rc.local
Odpovědět | | Sbalit | Link | Blokovat | Admin

Řešením je správné nastavení závislostí mezi systemd unit pro login manažera a systemd unit pro kopírování, což už popsali ostatní výše. (Asi bych na takovou věc opravdu vytvořil oddělenou systemd unit s nějakým intuitivním názvem, spíš než dávat to do rc.local (což je takové fosilní řešení z doby shellových initů a jednoprocesorů, které do systemd zapadá celkem obtížně).)

To kopírování jako takové je ovšem nesmyslný nápad. Není lepší odstranit Btrfs snapshot s profilem (existuje-li) a vytvořit nový snapshot podle předlohy, která se nemění? To bude nesrovnatelně rychlejší než kopírování a bude to navíc záviset mnohem méně na počtu nebo nebo velikosti souborů v profilu, počtu profilů atd. atp. Výhody, kam se člověk podívá. Samozřejmě pak ta "kopie" zabere pouze velikost řádově odpovídající metadatům, nikoliv samotným datům. Další plus.

Něco vzdáleně podobného jde i bez samostatného subvolume, pomocí cp --reflink -a ... To sice trvá o fous déle, ale i v tomto případě se budou kopírovat jenom metadata, nikoliv celá data.

Ať mě ale někdo nechytá za slovo: Nesnažím se naznačit, že rychlejší kopírování něco vyřeší. Ne, nevyřeší; napřed je potřeba mít tu synchronizaci nastavenou správně, pomocí závislostí v systemd.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.