kbotnen Skrevet 24. mai 2009 Del Skrevet 24. mai 2009 Hei. Jeg prøver å kjøre et bash script fra php. Jeg ha prøvd: //$result = shell_exec("~/path/to/start.sh $tmpUser $tmpID $tmpFilename"); //$result = system("~/path/to/start.sh $tmpUser $tmpID $tmpFilename"); Det som skjer er at scriptet starter, men virker ikke som det fullfører. Men hovedproblemet er at php / nettsiden virker som det står og venter på at scriptet skal returnere en verdi før den fortsetter. Om jeg kjører scriptet fra kommandolinjen fungerer det helt fint, også når jeg bruker de samme inn verdiene som php sender. Sriptet fullfører og returnerer til kommandolinjen. Jeg kjører en LAMP konfigurasjon, ikke safemode. Noe tips og råd her? Enten til hva jeg gjør gærnt eller evt en annen / bedre måte å løse problemet på? -K- Lenke til kommentar
Mats Danielsen Skrevet 24. mai 2009 Del Skrevet 24. mai 2009 Du har lagt ved // som er en kommentering, kanskje fjerne det? Lenke til kommentar
kbotnen Skrevet 24. mai 2009 Forfatter Del Skrevet 24. mai 2009 Du har lagt ved // som er en kommentering, kanskje fjerne det? Hehe.. Jeg har selvfølgelig ikke kommenteringen på når problemet oppstår, derfor er den der nå for ikke å låse hele nettsiden det er snakk om. Jeg kjører også kun en av de to kommandoene (shell_exec(), system()), ikke begge samtidig. Min feil, jeg burde presisert dette bedre! Altså følgende virker ikke: $result = shell_exec("~/path/to/start.sh $tmpUser $tmpID $tmpFilename"); Ei heller: $result = system("~/path/to/start.sh $tmpUser $tmpID $tmpFilename"); Lenke til kommentar
Martin A. Skrevet 24. mai 2009 Del Skrevet 24. mai 2009 $result = system("~/path/to/start.sh $tmpUser $tmpID $tmpFilename > /dev/null &"); Lenke til kommentar
kbotnen Skrevet 25. mai 2009 Forfatter Del Skrevet 25. mai 2009 $result = system("~/path/to/start.sh $tmpUser $tmpID $tmpFilename > /dev/null &"); Enda henger det seg. men må kikke litt mer på hva bash scriptet returnerer tror jeg. og hvilken rettigheter det kjøre som. Takk for hjelpen så langt Lenke til kommentar
Kagee Skrevet 25. mai 2009 Del Skrevet 25. mai 2009 Dersom apache/php kjøres under en annen bruker (f.eks apache/www-user ) enn den som har "start.sh" i hjemmemappen sin, så vil jo "~" utvides til feil/ikkeeksisterende bane. Prøv med full path. Lenke til kommentar
kbotnen Skrevet 27. mai 2009 Forfatter Del Skrevet 27. mai 2009 Dersom apache/php kjøres under en annen bruker (f.eks apache/www-user ) enn den som har "start.sh" i hjemmemappen sin, så vil jo "~" utvides til feil/ikkeeksisterende bane. Prøv med full path. Har prøvd begge tipsene her men uten hell. Mitt tips er at php sitter å venter på noe tilbakemeldinger som ikke kommer, og timer ut mens den venter. Men som sagt så kjører scriptet fin fint når jeg kjører det via kommandolinjen med de samme parameterene som PHP gir inn :/ Lenke til kommentar
ze5400 Skrevet 27. mai 2009 Del Skrevet 27. mai 2009 Hvor lang tid bruker start.sh på å kjøre ferdig ellers? Og hva for en oppgave er det start.sh utfører? Kan vi få se den? Lenke til kommentar
kbotnen Skrevet 27. mai 2009 Forfatter Del Skrevet 27. mai 2009 Hvor lang tid bruker start.sh på å kjøre ferdig ellers? Og hva for en oppgave er det start.sh utfører? Kan vi få se den? Den bruker under 10 sekunder på samme innput dataene som den henger på. Den gjør diverse oppgaver, og kan desverre ikke vises enda. Den kjører blant annet noen java programmer, flytter rundt på filer med mer. Videre leting tilsier at kanskje det er System.out fra java program som låser koblingene, så imorgen skal jeg fjerne alt av output fra java delen av programmet og så prøve igjen. Jeg poster en versjon av start.sh vist det ikke fungerer. Må bare strippe vekk filstier o.l. Vil uansett poste "løsningen" om jeg finner den i tilfellet andre lurer og prøver på lignende saker. Takk for all hjelp og råd så langt. -K- Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå