php, bestand op achtergrond laten runnen zonder browser

Pagina: 1
Acties:
  • 138 views sinds 30-01-2008
  • Reageer

Onderwerpen


  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Topicstarter
Ik ben voor ons irc kanaaltje een bot aan het schrijven (al gaat het ondertussen meer richting AI, maar goed :)) en heb gewoon een php bestandje, met een oneindige while, m'n runtime op 0, en erin code.
Werkt fantastisch, maar _iemand_ moet steeds een internetbrowser-venster open hebben staan, want anders kapt ie ermee.

Iemand suggesties hoe ik dit bestandje dus voor altijd (tenzij ik em een *schop* commando geef << never mind :)) laat draaien, maar dan wel op de achtergrond? Dus zonder een browser open?

Spolap: Interactive webcomic


  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

bijv lynx in een shell background (screen kan ook) ofzo of gewoon php in cgi modus?

[ Voor 38% gewijzigd door stylee op 28-11-2002 23:49 ]


  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Topicstarter
err... irc.php staat op server, ik voer adres in in browser, script wordt uitgevoerd. Sluit ik het venster, stopt irc.php. Kan ik het nu zó instellen dat dat dus niet gebeurd?
> en dan het liefst natuurlijk alleen irc.php, dus niet dat alle bestanden die geannuleerd worden lekker doorgaan tot ze afgerond zijn :)

Spolap: Interactive webcomic


Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt hem in een cronjob zetten, zo simpel is het.

Acties:
  • 0 Henk 'm!

Verwijderd

http://www.php.net/manual/en/install.commandline.php

hier is informatie te vinden hoe je een script via de commandline (dus zonder webbrowser / webserver) kunt laten draaien

edit:

en dan kun je hem idd in een cronjob zetten

[ Voor 16% gewijzigd door Verwijderd op 29-11-2002 00:02 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Grappig dat mensen dat vragen eigenlijk....

Volgens mij stuurt de webserver eigenlijk maar een execute met aantal parameters (GET, POST, SESSION vars etc.) naar php.exe en die poept vervolgens de pagina (code) uit. php is geen service die continue moet draaien (zoals apache bijvoorbeeld)...

Acties:
  • 0 Henk 'm!

Verwijderd

PHP is er in twee smaakjes: als module en als cgi. De cgi versie kun je ook los op de commandline gebruiken: '/usr/bin/php -q irc.php' afhankelijk van je distro/platform.

Of je voegt dit
code:
1
2
3
4
#!/usr/bin/php -q 
<? #begin echte phpcode 
...
?>
aan je script toe en maakt het executable mbv chmod +x, dan kun je het runnen nat als een bash-script.

Acties:
  • 0 Henk 'm!

  • CyeZ
  • Registratie: September 2001
  • Laatst online: 10-09 03:41

CyeZ

Vroem vroem!!!

als alternatiev om een php script aan te roepen op de commandline kun je ook nog het volgende gebruiken:

Bash:
1
2
#!/bin/sh
nohup php -a bot.php &


Hiermee wordt php opgestart met als script wat het moet uitvoeren. (bot.php)
Verder wordt de boel in de achtergrond gestart (&) zodat je rustig verder kunt werken met je terminal.
En om te voorkomen dat je bot stopt als je de terminal exit hebben we het nohup commando.

[18:54] <Prammenhanger> |HunterPro|eet
[18:55] <Prammenhanger> lijkt best op
[18:55] <Prammenhanger> |HunterProFeet


Acties:
  • 0 Henk 'm!

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Topicstarter
Klinkt allemaal goed, maar tis een windows server. Nohup en de & lijken me dan niet een optie. :)
Verder ga ik de commandline met de -q eens proberen. Maar dan zit ik wel met twee andere dingetjes:
- als het script draait, kunnen dan nog wel andere php pagina's geladen worden?
- hoe stop ik em, behalve een command die ik ingeprogrammeerd heb? (command line > kill? of kan dat alleen in linux?)

Spolap: Interactive webcomic


Acties:
  • 0 Henk 'm!

Verwijderd

En een CRON-job?
zou dat niet nuttig zijn hier?

Acties:
  • 0 Henk 'm!

Verwijderd

wacco schreef op 29 november 2002 @ 10:42:
- als het script draait, kunnen dan nog wel andere php pagina's geladen worden?
Das gewoon multitasking :) Ja dus.
- hoe stop ik em, behalve een command die ik ingeprogrammeerd heb? (command line > kill? of kan dat alleen in linux?)
Ummmm hier is een start... je pid... die moet je killen
http://www.php.net/manual/en/function.getmypid.php

Acties:
  • 0 Henk 'm!

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Topicstarter
Zodra de persoon van de server weer reageert op mijn geschreeuw op irc ga ik het allemaal eens laten doorvoeren :)
Thanx folks, ik red het wel weer vanaf hier (wish me luck) :)

Spolap: Interactive webcomic


Acties:
  • 0 Henk 'm!

Verwijderd

goed luk!

Acties:
  • 0 Henk 'm!

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Topicstarter
<knip>
De eerste is m'n progsel, de tweede de code ervan. Het gaat nu niet echt om het laten runnen op de achtergrond, maar het laten runnen. Ik krijg namelijk telkens:
PHP has encountered an Access Violation at 77F721F0
Het adres wil nog wel eens veranderen... :(
Iemand een idee waarom dit gebeurd? Het heeft wel gewerkt. Het werkt niet meer sinds ik het een keertje heb gedraaid met de while erin... kan het zijn dat die nog steeds draait?
Tijdlimiet voor een script staat op oneindig.

[ Voor 9% gewijzigd door wacco op 04-12-2002 20:19 ]

Spolap: Interactive webcomic


Acties:
  • 0 Henk 'm!

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 20-08 20:35
kan je hem niet killen? dat moet toch in unix, linux en windows geen problemen opleveren?

Acties:
  • 0 Henk 'm!

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Topicstarter
Zou ff lastig worden, hij draait namelijk op een server van een vriend...
maar goed, ik zal het ff doorgeven als ie weer terug is van z'n werk

Spolap: Interactive webcomic


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:47
Wat wil iedereen toch met die cron jobs? Ik zie echt de toepassing in deze situatie niet.

On-topic: je kunt in Windows natuurlijk gewoon z'n proces eindigen, maar als je 'm netjes af wilt kunnen sluiten, kun je daar gewoon je IRC interface voor gebruiken; dat is immers toch je primaire interface met je applicatie. Je bouwt dan gewoon een quit-commando in of iets dergelijks.

[ Voor 25% gewijzigd door Soultaker op 04-12-2002 19:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik zoek ook zoiets, maar ik draai zelf geen server. Met de zoekfunctie van dit forum heb ik een heel creatieve oplossing gezien: je usericoon het script laten uitvoeren (zoals mijn eigen icoon), die wordt als je vaak op fora post regelmatig bekeken, maar het is geen oplossing als je een script precies elk half uur wil laten uitvoeren.

Acties:
  • 0 Henk 'm!

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Topicstarter
Mja, hij moet dus 24/7 gaan draaien, maar soms heeft ie er schijnbaar gewoon geen zin in en crasht ie keihard. Heel vaag.
En ik haal die link weer weg, want we worden gek ik het kanaal :+

Spolap: Interactive webcomic

Pagina: 1