Gå til innhold

Kjøre programmer / script fra php låser websiden


Anbefalte innlegg

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
Videoannonse
Annonse
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
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
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...