Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: dharjee 09 Dubna 2008, 22:33:28

Název: render (Linux) - automatické přesunutí do adresáře, spuštění příkazů [vyřešeno]
Přispěvatel: dharjee 09 Dubna 2008, 22:33:28
Dobrý den

mám následující problém, který nevím jak vyřešit.
Svůj linuxový stroj používám jako renderfarmu. Nainstaloval jsem na ní program 3delight (http://www.3delight.com/en/) podle návodu viz příloha. Problémem je, že rendrování funguje jenom když jsem v csh shellu a když postoupím následující kroky z návodu:

% cd ~/software/3delight-2.1.0/
% unsetenv DELIGHT
% source .3delight_csh


To je ale celkem opruz, protože když chci rendrovat přes ssh (renderdl ssh server /cesta k souboru pro rendrování) tak to nefunguje. Musím se klasicky přes ssh přihlásit na renderfarmu a tam napsat výše uvedené tři řádky a až pak (a to přímo na renderfarmě) zadat příkaz pro rendrování.
Potřebuji tedy poradit co udělat pro to, aby se dané kroky (zadání těch tří řádků) provedlo automaticky při startu systému a aby rendrování fungovalo i z nově otevřeného terminálu (Zatím funguje jenom v tom terminálovém okně, ve kterém zadám ty tři řádky). Ještě jedna věc - program je nainstalovaný v /usr/local/, ale to tomu nevadí.

Děkuji za rady

[attachment deleted by admin]
Název: Re: render na linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: Petr Merlin Vaněček 09 Dubna 2008, 22:38:42
Vytvořit kratičký script (jehož obsahem budou vlastně jen ty 3 řádky + úvodní #!/bin/bash), umístit ho do /etc/init.d a zavolat na něj  update-rc.d
Název: Re: render na linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: dharjee 09 Dubna 2008, 22:43:57
no já tak trochu tušil, že tajemství je ve skriptu, ale já nevím jak ho vytvořit... má vypadat takhle (?):
#!/bin/csh/
cd ~/software/3delight-2.1.0/
% unsetenv DELIGHT
% source .3delight_csh


použil jsem  /bin/csh/ protože má to být v csh shellu, je to tak správně?

děkuji

Název: Re: render na linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: Petr Merlin Vaněček 09 Dubna 2008, 22:50:31
No v csh sice nedělám, ale tipnu to takto:
Kód: [Vybrat]
#!/bin/csh
unsetenv DELIGHT
source .3delight_csh
cd $DELIGHT/examples/opacity/

PS: ty cesty musíte volit absolutní z hlediska / tj. nepoužívat cd ~ ale např. cd /home/dharjee/software/3delight-2.1.0/
Název: Re: render na linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: dharjee 09 Dubna 2008, 23:00:16
Tak jsem ho vytvořil a vypadá takhle:
#!/bin/csh
cd /home/software/3delight-7.0.0
unsetenv DELIGHT
source .3delight_csh


když ale zadám
$update-rc.d

tak mi to vyhodí:
root@Ubuntu:/home/dharjee# update-rc.d
usage: update-rc.d [-n] [-f] <basename> remove
       update-rc.d [-n] <basename> defaults|multiuser [NN | sNN kNN]
       update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .
                -n: not really
                -f: force


Co dělám špatně?
Název: Re: render na Linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: Petr Merlin Vaněček 09 Dubna 2008, 23:06:26
No možná by bylo dobré si přečíst man update-rc.d případně se podívat co to vlastně vypsalo. Dal jsem vám ideu, nikoliv přesné řešení :) PS: update-rc.d už se na fóru řešilo několikrát, zkuste hledat :)

PS: To není neochota, nebo "buzerace", ale snaha něčemu naučit :) ;)
Název: Re: render na Linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: dharjee 09 Dubna 2008, 23:56:59
rozumim  :)

tak jsem to zkusil (jak s #!/bin/bash tak s #!/bin/csh)
zadal jsem sudo update-rc.d jmenosouboru defaults, vše proběhlo v pořádku, ale pořád to zdá se nefunguje.

děkuji
Název: Re: render na Linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: Petr Merlin Vaněček 10 Dubna 2008, 07:44:58
Tak jinak - co tyhle tři příkazy mají za úkol udělat? Pokud jsem to pochopil, tak načíst nějaký standardně používaný soubor, který je potřeba pro render (který se spouští jinak)?
Název: Re: render na Linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: dharjee 10 Dubna 2008, 09:13:20
Ano, taky tak tomu rozumím, že by to měli provést. Unsetenv smaže nějakou systémovou proměnnou (ale to asi víte) a source .3delight_csh určuje který shell na to budu používat. Pro zajímavost, když namísto csh zadám bash, tak mi vyskočí hláška: DL_PLAT: Undefined variable.
Ještě jedna věc co jsem zjistil. V návodě je napsáno:
Finally, you should add the following line to your `.login' file:
source ~/software/3delight-2.1.0/.3delight_csh


-z čeho jsem porozuměl, že příkaz mám zadat do rc.local (/etc/rc.local) -s absolutní cestou, aby se to provádělo při startu systému. Ale jak pozoruji, tak to nefunguje. Prohlédl jsem si i fórum, ale pomoc jsem nespatřil  :(

Děkuji
Název: Re: render na Linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: Petr Merlin Vaněček 10 Dubna 2008, 09:33:10
No tak tak to není :) Odstraňte ten script po spuštění a smažte jej.
Do Vašeho ~/bash_profile přidejte na konec
Kód: [Vybrat]
cd ~/software/3delight-2.1.0/
% unsetenv DELIGHT
% source .3delight_csh

Tento soubor slouží k vykonání určitých příkazů při přihlášení uživatele.
Název: Re: render na Linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: dharjee 10 Dubna 2008, 10:50:53
tak ja u sebe ten soubor nevidim. Mam tam napr.: .bashrc anebo .profile. Na netu jsem nasel, ze .bashrc je to same bash_profile. Je to pravda?
Název: Re: render na Linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: Petr Merlin Vaněček 10 Dubna 2008, 11:13:45
No úplně to samé to sice není (login x non-login shell), ale dát to tam můžete také.
Název: Re: render na Linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: dharjee 10 Dubna 2008, 15:00:22
Tak vyreseno nasledujicim zpusobem:

1. do /etc/init.d/boot.local pridat "source /usr/local/3delight-7.0.0/.3delight_csh
2. do /etc/csh.cshrc pridat na konec:
   cd /usr/local/3delight-7.0.0/
   unsetenv DELIGHT
   source .3delight_csh
3. do /etc/csh.login pridat na konec to same jako v bode 4
4. v /etc/passwd zmenit shell u uzivatelu a u roota na csh

pak samozrejme vytvorit stejneho uzivatele s root pravy jako na vzdalene masine. Popripade se stejnou cestou k domovskemu adresari.A funguje to perfektne

Dekuji vsem



Název: Re: render na Linuxu - automatické přesunutí do adresáře a spuštění příkazů
Přispěvatel: Petr Merlin Vaněček 10 Dubna 2008, 18:27:40
Výborně :)