juhostt Posted March 27, 2009 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.
KGigi Posted March 27, 2009 Posted March 27, 2009 Nem hiszem, hogy ez a gond, de a script elsõ sorában meg kell adni a bash helyét.
juhostt Posted March 27, 2009 Author 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.
arpsoft Posted March 27, 2009 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?
KGigi Posted March 27, 2009 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.
juhostt Posted March 28, 2009 Author 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
juhostt Posted March 30, 2009 Author 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
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