Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: 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]
-
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
-
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
-
No v csh sice nedělám, ale tipnu to takto:
#!/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/
-
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ě?
-
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 :) ;)
-
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
-
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)?
-
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
-
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
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.
-
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?
-
No úplně to samé to sice není (login x non-login shell), ale dát to tam můžete také.
-
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
-
Výborně :)