As die program opgestel is, kan jy dit hardloop net soos jy enige ander program kan uitvoer deur dit op naam van die bash-skrip te noem. Daar is C-tolk, maar die meeste C-programme word geskryf om saamgestel te word. Toestemmings: Hierdie programme sal dieselfde toestemmings as die Bash hê. Gebruik die CD-opdrag om werkgidse te verander. Die Bash-dop gee argumente direk na die opdragte wat u uitvoer. Die uitvoer van 'n Windows-opdrag kan na 'n Linux-opdrag gepoer word, en omgekeerd. Om so 'n opdrag uit te voer, moet jy die cmd hardloop. Byvoorbeeld, jy kan die ipconfig gebruik. Stelsel32 gids direk, soos dit: PING. Linux grep opdrag om die uitset te soek. Hierdie opdragte sal ook werk wanneer dit in 'n Bash-skrif opgeneem word, sodat jy 'n Bash-skrip kan skryf wat beide Windows-opdragte en Linux-nutsprogramme insluit. As dit in die Bash-dop loop, sal dit in 'n Bash-skrip werk.
U gebruik die standaard Windows-lêerpad wanneer u 'n lêerpad direk na 'n Windows-program verbystuur. Bash dop as Administrateur. Windows-programme verwag 'n Windows-lêerpad. So, as u 'n opdrag uitvoer wat die inhoud van die huidige gids bevat, sal dit die inhoud van die huidige werkgids in die basiskermskerm lys. Bash gaan die argument reguit. Dit is 'n bietjie meer ingewikkeld as die pad komplekse karakters bevat soos spasies en hakies, soos die programlêergidse. Gebruikersrekening: Programme wat vanaf die Bash-skyf gelanseer word, sal hardloop asof hulle deur die huidige Windows-gebruikersrekening gelanseer is. Bash opdragte van die standaard Windows Command Prompt. Deur hakies te gebruik, is dit moontlik om weer beheer oor STERR en STOUT te verkry.
Anders dink Windows dit is die program naam. Drop en gee my 20 command line scripts! Meer as een prent in een HTML het die bediener gestop. En ek is seker dat die fout vir jou so duidelik is soos dit vir my was! Hoop dit sal sommige van julle help, ek het 'n rukkie geduur totdat ek op hierdie idee gekom het. As jy baie eksterne roeping gaan doen, of enige van dit moet ietwat veilig wees, is jy waarskynlik beter om 'n PHP-uitbreiding te skryf. Gebaseer op die funksie van Arno van die Brink. Lees die tmp-lêer. Hier wil ek veral Marat bedank vir die kennis. Hierdie metode, in teenstelling met die ander oplossings, laat u toe om enige program te minimaliseer, gemaksimeer of glad nie te laat nie.
In my geval is die PHP-skrif met die exec-opdrag gebruik as die bron van 'n prentetiket. Die uitvoering van die opdrag as 'n ander gebruiker van binne van PHP was soos volg. Die opdrag wat uitgevoer sal word. U kan dit gebruik om 'n proses te begin of by 'n bestaande PID-proses aan te sluit. Getoets hierdie skrifte wat vanaf die opdrag lyn op die bediener loop en hulle werk net goed. Windows PHP-lêers oop te maak met PHP. Neem byvoorbeeld 'n PHP-kode wat 'n eksterne program oproep, en stuur 'n soort wagwoord as 'n parameter. En dit kan ook met IIS werk, so probeer dit as jy dieselfde poblem het.
Die voorstel is om net jou perl-skaalveranderlikes aan die einde van u skrip te druk, en dan elke skikkingslid uit die skikking wat deur die exec-funksie teruggekeer word, te gryp. Onthou dat handvatsels 0, 1 en 2 standaard invoer, standaard uitvoer en standaard fout is. Dit impliseer dat u opdrag die reëls van cmd moet volg. Windows omgewing met Apache. Eers het ek psexec ontdek. DIREKTE sonder enige intermediêre dop. Skakel dan STERR met STOUT. PHP exec bevel om enige batch lêer uit te voer. Teken aan en verander van die plaaslike stelsel rekening na 'n gebruikersgemaakte rekening, voer die gebruikersnaam en die wagwoord in en begin die diens weer. Eerste van alles: stel die volle pad na die php binêre, want hierdie opdrag sal onder die apache-gebruiker loop, en jy sal waarskynlik nie opdrag alias soos PHP in daardie gebruiker hê nie. Kyk na die fout.
Het my baie tyd gespaar. Maar as ek 'n bondelêer uitgevoer het, het ek geen afvoer van die exec-opdrag ontvang nie. Delimiteer die nie-vurkfoute. Die proses word nie uitgevoer nie. Windows terwyl die skrip voortgaan om uit te voer. U moet die volgende sien as apache nie by die xbediener gevoeg word nie. Aanhalingstekens is mandaat vir venster titel. So die tweede keer dat ek probeer om toegang tot die webblad te kry, kry ek die ou http-netwerkverbinding wat nou geïgnoreer word.
Die oplossing is om alle lêerhandvatsels vanaf 3 op te skandeer en hulle almal te sluit. Proses moet geslaag het, sukses! Windows wanneer 'n parameter na 'n PHP-skriplêer oorgedra word. Dieselfde oplossing kan ook van toepassing wees op die stelsel en passthru. PHP om te hang totdat die uitvoering van die program eindig. Stelselprogramuitvoeringsfunksies lyk nie Win32 GUI-toepassings uit te voer nie. Die uitvoerbare weergawe wat uitgevoer moet word, moet in u stelsel wees! Fout: TERM-omgewing veranderlike nie gestel nie. Dan sou jy net herhaal deur die skikking wat deur die exec-funksie teruggekeer is, en verdeel elke veranderlike langs die onderstreep.
NIX het jou nodig om 'n TERMO-omgewing te stel. Dit word nie onder Linux getoets nie, aangesien daar meer elegante maniere is om 'n proses te kweek. Die probleem is dit, die eerste keer as ek toegang kry tot die bladsy, werk alles soos dit moet. As u 'n eksterne program wil begin sonder om cmd te begin. IMAP-goed, al die Maildirs behoorlik gesaai en die gebruiker op die plaaslike stelsel voorsien. SVE of MEM gebruik. Dit is die tweede keer dat hierdie een my gekry het, ek het gedink dat iemand anders hierdie nota ook nuttig kan vind. Maak seker dat die wav, mp3 of wat jy besluit om dit te toets, toeganklik is vir apache. Spesifiseer die volle pad na elke lêer wat uitgevoer word.
Daar is 'n paar dinge wat hier belangrik is. Hoop dit is nuttig vir ander op soek na soortgelyke antwoord! Vergelyk dit met die backtick-operateur wat 'n dop uitvoer wat dan die program noem waarvoor jy vra. Die rede hiervoor is dat as dit misluk, sal xmms waarskynlik 'n fout gee wat jy kan opspoor soos 'n windhond jaag daardie klein bunny by die hondspoor! Dit is 'n manier om dit te doen. Dit het vir my gewerk. Het 'n geruime tyd geneem om die lyn te bepaal wat ek volgende gaan plaas. Anders kry jy dieselfde probleem as ek, jou php script sal wag om die terugvoer van die bediener te kry. Geheue - en SVE-gebruik van 'n program. Probeer dit met ping, want dit moet in stelsel32 wees vir omtrent almal. Laai nou dieselfde php bladsy weer.
'N Opdrag wat nooit op 'n Windows-bediener uitkom nie, het die volgende kode geïnspireer. 'N Nie moeilike manier om tred te hou met eksterne prosesse nie. Om dit op te los, verwyder die sein hanteerder en voeg dit weer by exec. Die slaapparameter is die aantal sekondes wat die skripsie sal onderbreek omdat die kontroleer of die proses voltooi is. Dit blyk dat selfs met al die bogenoemde in plek op die bediener, ek die volle pad na cmd moes spesifiseer. CPU-tyd word nie beïnvloed nie, dus blyk dit dat iets geblokkeer is. Begin met 'n vals opsie om die beperking te beperk en moenie wag vir prosesbeëindiging nie. So sal dit wag totdat die subprosesse dood is. PHP bedieners daar is 'n probleem met die gebruik van die exec opdrag meer as een keer op dieselfde tyd. Uit die roerende webblad blyk dit moontlik dat die skrip nie enige data teruggee nie. Volle beheer na die gids waarin die joernaal lêer geskryf is. Taak: Voer psexec uit php uit om 'n opdrag uit te voer op 'n afgeleë rekenaar.
En vir die groot finale! Maak die opdrag venster maar wys dit nie. Vir een of ander vreemde rede kon ek nie agtergrondkry om met enige stelsel of exec of met die wsh te werk nie. XP-stelsels, en waarskynlik ook NT, nadat ek my kop 'n paar dae lank hier teen 'n muur geslaan het, het ek uiteindelik 'n dwaas manier van agtergrondprosesse gevind en die skrif voortgesit. PHP binêre verby die script lêernaam as die parameter. Die skrif moet dan as uitvoerbaar gemerk word. PHP-skrif onder dit. PHP script van die opdrag lyn, wat nuttig is vir die verwerking van joernaal of databasis opruim vir jou webwerf. Standaard vir die projek gids. Die verskafde argument word volgens Projek geëvalueer.
Die uitset stroom verteer standaard uitvoer van die proses wat die opdrag uitvoer. Standaard is 'n leë stroom. Die werksgids vir die proses. Stel die volledige opdragreël in, insluitend die uitvoerbare weergawe wat uitgevoer moet word plus sy argumente. Stel die werkgids vir die proses. Die omgewingsveranderlikes om vir die proses te gebruik. Die uitvoerstroom om standaardfout te gebruik van die proses wat die opdrag uitvoer. Stel die naam van die uitvoerbare in om te gebruik. Voeg 'n omgewingsveranderlike by die omgewing vir hierdie proses.
Die naam van die uitvoerbare te gebruik. Die standaard invoerstroom vir die proses wat die opdrag uitvoer. Verstek na 'n leë lys. Voeg 'n paar omgewing veranderlikes by die omgewing vir hierdie proses. Returns null as hierdie taak nog nie uitgevoer is nie. Die volledige opdrag reël, insluitende die uitvoerbare plus sy argumente. Voeg argumente by vir die opdrag wat uitgevoer moet word. Standaard op die omgewing van hierdie proses. Die argumente vir die opdrag wat uitgevoer moet word. Die resultaat vir die opdrag word deur hierdie taak uitgevoer.
Elke ander opsie is opsioneel. Packer kan weer begin deur die skulpvoorsitter. Vir baie nuwe gebruikers is die execute_command raaiselagtig. Hoe kan ek sê wat my skopscript doen? 'N Skikking van skrifte om uit te voer. DashAsBinSh Ubuntu wiki bladsy. By verstek is dit vals. POSIX-dop, soos tcsh op FreeBSD.
By verstek is dit 5m of 5 minute. Die opdrag om te gebruik om die skrif uit te voer. Die verwysing van beskikbare opsies is hieronder gelys. Dit is 'n verskeidenheid instruksies om uit te voer. Die lêernaam van die opgelaaide skrip sal op die masjien wees. Vars, wat is die lys van environment_vars, indien gekonfigureer. Sien die bostaande wenk. Hierdie pad kan absoluut of relatief wees.
PACKER_BUILD_NAME is ingestel op die naam van die gebou wat Packer loop.
Opmerkings
Plaas 'n opmerking