juhostt 0 Share Posted March 27, 2009 Sziasztok. Van egy progi, amit screen-be szeretnék elindítani webes felületen (php). A hiba megoldásához linux - bash ismeretre van szükség, nem php-ra, ezért is nyitottam itt a témát. A gond az, hogy alapból a www-data nem indít el terminált, így nincs mit screen-be tenni. És ez lenne az ok, amiért segítségetek szeretném kérni. Annyit tudok, hogy bash-t kell elindítani, de hiába próbáltam, sehogy sem jött össze. próbáltam pár lehetőséget** bash -t --- ez létrehoz egy új terminált, de mivel php-ban fut, elindul, és le is áll bash -c screen --- php-ból indítva ilyenkor is azt kapom, hogy nincs terminál... bash -t -c screen --- ez shellben működik, php-ban a szokásos: nincs terminál hibát kapom. bash -t -c screen -m -d ez shellben működik, php-ban a szokásos: nincs terminál hibát kapom. A script: ** #ez tarolja, el, mit ir ki a script lefutas utan exec >/logok/start.sh.out 2>&1 echo $path which radio #Ez a script, ami shell-ben lefut, php-ban nem screen -d -m radio screen -r -X quit Már 1 hete küzdök vele, de kifogytam az ötletekből. Egy részletes doksi, vagy link, (angol, v magyar) is bőven megtenné. googleztam, de nem sok sikerrel. Előre is köszönök minden segítséget. Link to comment Share on other sites More sharing options...
KGigi 21 Share Posted March 27, 2009 Nem hiszem, hogy ez a gond, de a script elsõ sorában meg kell adni a bash helyét. Link to comment Share on other sites More sharing options...
juhostt 0 Author Share Posted March 27, 2009 Nem hiszem, hogy ez a gond, de a script első sorában meg kell adni a bash helyét. Ha a #!/bin/bash -ra gondolsz, azzal kezdtem, de az egyáltalán nem jó. Tesztként betettem a scriptbe egy mkdir teszt parancsot. Ez lefut php-ban is, ha nincs #!/bin/bash megadva. Ha meg van adva, egyáltalán nem fut le a script, ezért ahelyett a **-al jelölt parancsokat próbáltam, eddig sikertelenül. Link to comment Share on other sites More sharing options...
arpsoft 12 Share Posted March 27, 2009 Csak azért, hogy jól értem-e: egy webes kérés során futtatsz egy php szkriptet a szervereden, ami a szerveren indít egy bash-t, ami az eredményt lerakja egy fájlba. Jól értelmezem? Ez lenne a feladat? Link to comment Share on other sites More sharing options...
KGigi 21 Share Posted March 27, 2009 Arra gondolok, de ha úgy nem mûködik, az azt jelenti, hogy nem abban a könyvtárban van a bash. Link to comment Share on other sites More sharing options...
juhostt 0 Author Share Posted March 28, 2009 ami az eredményt lerakja egy fájlba. Nem azon van a hangsúly, h egy fileba rakja le. ( mármint ha az x.sh.out-ra gondoltál) hanem azon, hogy mikor lefut a script, akkor www-data ( vagyis web ) felhasználó indítson egy bash-t ( egy új terminált) és ebben indítsa el screen-be a progit, amit szeretnék futtatni, és automatikusan tegye le háttérbe. ( ide kellenek kapcsolók) addig eljutottam, hogy tudok nyitni új terminált: bash -t ezután jönne a screen-be a progi futtatása, majd háttérbe tétele automatikusan. ez a gond, h nem teszi automatikusan háttérbe magát. elvileg az -m -d kapcsoló páros lenne a megoldás. ez shell-be mûködik, php-ban nem. Próbáltam olyat, hogy nyitok egy terminált, azt screenb-e teszem, aztán ebben a terminálban indítani el megint csak egy új screen-be a progit. amit itt leírtam, azt mind egy fileba kell foglalni, és php-val lefuttatni. update: megoldottam Link to comment Share on other sites More sharing options...
arpsoft 12 Share Posted March 30, 2009 És mi volt a megoldás? Link to comment Share on other sites More sharing options...
juhostt 0 Author Share Posted March 30, 2009 (edited) Nem a terminált kell elindítani, mint ahogy hittem, hanem a progit. Így nem az üres terminál, hanem a progi fog screen-be futni. Edited March 31, 2009 by KGigi Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now