pepparMedlem sedan dec. 2001873 inlägg Jag startar ett PHPscript med en batfil på en server (windows, xampp, apache). Ibland så händer det att scriptet stoppar/avbryter pga data som scriptet försöker kommunicera med ej längre går att nå. Det är ett script som hanterar rekord på en spelserver. Det som händer är att en spelaresom anslutit inte längre är online och scriptet avbryter av någon anledning.
Hur som helst. Det är omöjligt att veta hur och när detta kan hända eftersom det roterar ca 100-1000 spelare om dygnet på servern.
Kan man skapa ett script som kollar om det andra scriptet är igång? Om det inte är det så startar det det andra scripet igen? Anledningen är att det inte alltid är admins på servern online och kan starta om scripet manuellt och det kan ta ett par timmar innan någon upptäcker det...
effataMedlem sedan apr. 2008137 inlägg Kan du inte bara köra exekveringen i en loop, så att scriptet startar direkt igen om det avbryts?
:start
exekvera phpscript
goto start
Jag håller med effata i hans svar, att köra scriptet i en loop.
Dock skulle jag nog köra loopen genom PHP-kod direkt, för att slippa anropa scriptet hela tiden.
T ex:
while (1) {
// Eventuell kod
sleep(5);
}
Lycka till.
effataMedlem sedan apr. 2008137 inlägg Fast om problemet är att scriptet dör av olika anledningar hjälper det inte att lägga all kod i en oändlig loop.
Nej, men ett script behöver ju inte dö pga. kommunikationen med en server inte fungerar.
Det handlar ju bara om att kolla över koden och se till att den aldrig kommer avsluta pga. eventuella fel.
pepparMedlem sedan dec. 2001873 inlägg Det är inte så enkelt Eliasson. Det är tusentalsrader kod som skall gås igenom om man skall lösa det och jag vet inte om det ens skulle kunna gå att lösa.
Låt oss bara säga att det kommer att dö ut... så småningom...
PHPScriptet kommunicerar med ett spelserverscript som PHP scriptet hämtar sin data ifrån angående tider, spelarinfo osv.
Om PHPscriptet skickar en förfrågan om en ansluten spelare till Spelserverscriptet microsekunden efter att spelaren disconnectat och spelserverscriptet inte hunnit rapportera detta till PHPscriptet eller om information "möts på halva vägen" kommer PHPscriptet att dö ut...
Det är inte jag som skrivit PHPscriptet, den tysk som gjort det har inte löst problemet men jag har fått till svar att det är bara att starta om scriptet. Han vet en del om båda scripten och jag gissar att det inte är löst i en handvändning att fixa problemet i PHPscripet.
Jag skall prova med din lösning effata..
effataMedlem sedan apr. 2008137 inlägg Har själv varit i ungefär samma sits som dig peppar, fast då var det en sökspindel skriven i C++ som crashade ibland. Och vi hade inte kvar källkoden, så vi kunde inte se över problemet. En oändlig loop, i det här fallet i ett bashscript, funkade utmärkt som lösning, så det borde funka utmärkt för dig också.
pepparMedlem sedan dec. 2001873 inlägg Fint :)
Jag har lagt till loopen, jag återkommer när jag ser att det hänt något.