Avatar billede fixbabe Nybegynder
18. april 2006 - 19:08 Der er 17 kommentarer og
1 løsning

Stoppe screen efter 60 min

Jeg har et script der starte følgende via screen:

system("cd /home/test/system screen -m -d -S program".$port." ./start -port ".$port."; cd ../");

Hvordan laver jeg et script der automatisk lukker den samme screen ned efter 60 min? det skal sige meningen er at der skal køre flere screens på samme tid deres navne vil blive "programPORT"
Avatar billede jakobdo Ekspert
18. april 2006 - 20:39 #1
Jeg mener når du starter screen, så får du et ID, det id skal du så lukke ned eller reattache og så lukke "screen" ned.
Måske du kan fange screen med: $output = system(.....);
Og du skal vel ikke have CD /home... altså CD skal vel væk?
Avatar billede fixbabe Nybegynder
18. april 2006 - 20:41 #2
jeg kan lukke den igen med system("screen -X -S program'".$port."' quit"); uden problemer og det er intet problem at skaffe "screen id" det der er problemet er at den skal stoppe efter 60 min uden at en bruger behøver at åbne en side eller være på sitet.
Avatar billede jakobdo Ekspert
18. april 2006 - 20:55 #3
cronjob eller planlagte opgaver må være løsningen så.
Avatar billede fixbabe Nybegynder
18. april 2006 - 20:56 #4
i php ?
Avatar billede jakobdo Ekspert
18. april 2006 - 21:02 #5
cronjob eller planlagte opgaver laver du på din server Linux/Unix eller Windows.
Avatar billede fixbabe Nybegynder
18. april 2006 - 21:04 #6
ja men det dur ikke, da brugere kan starte som de ønsker. sitet skal køre helt selv uden at jeg skal til at tjekke ting osv
Avatar billede jakobdo Ekspert
18. april 2006 - 21:11 #7
Du skal jo hellere ikke tjekke noget.
Du laver et cronjob som f.eks. køres hvert minut.
Når en screen startes, så smider du f.eks. screen's id i en database og tidspunkt startet.
Scriptet som så køres med dit cronjob hvert minut, tjekker så om et screen job har kørt i mere end 60 minutter, hvis ja, luk det ned og ret status til ikke kørende i databasen.
Avatar billede fixbabe Nybegynder
18. april 2006 - 21:12 #8
lyder som noget jeg kan bruge men aner ikke hvordan det skal laves.
Avatar billede jakobdo Ekspert
18. april 2006 - 21:18 #9
Start med at lav en tabel som f.eks. indeholder: id, starttid, status
og et script som starter screen, gemmer id i tabellen, samt starttid = now() og status = 1
Avatar billede fixbabe Nybegynder
18. april 2006 - 21:20 #10
det er jeg i fuld gang med at lave, hvordan laver jeg det til et "cronjob" ?
Avatar billede jakobdo Ekspert
18. april 2006 - 21:21 #11
Har du egen server?
Avatar billede fixbabe Nybegynder
18. april 2006 - 21:22 #12
yes, linux
Avatar billede fixbabe Nybegynder
18. april 2006 - 21:22 #13
debian
Avatar billede jakobdo Ekspert
18. april 2006 - 21:26 #14
Du skal lave scriptet som tjekker databasen og lukket screen ned, hvis det har kørt 60 minutter eller mere.
Cronjob installeret ved at skrive cronjob -e
Og så åbnes en editor, hvor du så indtaster stien til php og din php fil.
Så ligetil er det dog ikke, du skal nemlig også sætte intervaller og lign.
Avatar billede fixbabe Nybegynder
18. april 2006 - 21:31 #15
:O så må jeg oprette et spørgsmål om det når jeg når der til :) men tak for hjælpen hvis du gider smide et svar så jeg kan få lukket.
Avatar billede jakobdo Ekspert
18. april 2006 - 21:31 #16
Svar!
Avatar billede fixbabe Nybegynder
18. april 2006 - 21:32 #17
Dejligt men en "hurtig" samtale istedet for at skulle vente dage på folk svarer :)
Avatar billede jakobdo Ekspert
18. april 2006 - 21:33 #18
:o) Jeg takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester