Avatar billede side1 Novice
17. juli 2009 - 16:09 Der er 11 kommentarer

Cronjob bliver ved med at restarte

Jeg kører et loop script som tager en del tid om at bliver færdig. Jeg starter loop´et med cron. Problemet er at min server (NAS QNAP TS-219) åbentbart anser det som er fejl at scriptet ikke er blivet færdig og derfor restarter den scriptet. Hvordan undgår jeg at cronjob restarter?.
Avatar billede dennismp Nybegynder
18. juli 2009 - 20:05 #1
Det gør cron normalt ikke. Er du sikker på at du ikke har bedt den om at udføre scriptet ofterer end du regner med?
Avatar billede side1 Novice
18. juli 2009 - 22:02 #2
Ja, helt sikker. Kan det være php der genstarter. Findes der en funktion i php der genstater et php script, hvis det ikke er afsluttet efter et stykke tid?
Avatar billede dennismp Nybegynder
18. juli 2009 - 22:18 #3
Ja, max-execution-time, http://dk.php.net/manual/en/info.configuration.php#ini.max-execution-time

Men så burde du få samme fejl når du kører scriptet direkte fra din shell.
Avatar billede side1 Novice
18. juli 2009 - 22:54 #4
Ja, præsis, men jeg får netop ikke restart, hvis jeg ikke køre den som cronjob. Hvis jeg køre start af script via browser, så fungere det fint, så det må næste være nogen med cron/apache og ikke noget med php.
Avatar billede dennismp Nybegynder
18. juli 2009 - 23:32 #5
Hvordan kører du scriptet fra cron? Vha wget/curl/fetch/.. ?
Avatar billede side1 Novice
19. juli 2009 - 08:49 #6
/tmp/cron/crontabs/admin    , den starter fint på det rigtige tidspunkt, men stater så scriptet igen mellem 15 og 50 minuter efter igen, og igen
Avatar billede dennismp Nybegynder
19. juli 2009 - 09:37 #7
Hvad indeholder crontabs admin?
Avatar billede side1 Novice
19. juli 2009 - 10:20 #8
# m h dom m dow cmd
0 3 * * * /usr/local/sbin/ImR_all -soft /Qmultimedia
0 4 * * * /sbin/hwclock -s
0 3 * * * /sbin/vs_refresh
0 9 * * * wget "http://192.168.1.101/cron_job.php"
30 4 * * * /etc/init.d/Qthttpd.sh restart
50 23 * * 0 /sbin/poweroff
Avatar billede dennismp Nybegynder
19. juli 2009 - 11:18 #9
Hvad er max-execution-time sat til? Og er du sikker på at det er crontab der starter den? (Du kan jo prøve at se i access_log og søge på cron_job.php og se om der er et mønster)
Avatar billede side1 Novice
19. juli 2009 - 12:04 #10
max-execution-time er sat til 5 min, men jeg sætter set_time_limit(360000); i starten at scriptet, og det virker fint hvis jeg starter scriptet manuelt via browser. Faktisk stopper den heller ikke den første start. Den første køre stadig videre. Den starter bare en ny og en ny... Det lugter derfor meget af at cronjob tror det er en fejl at scriptet ike bliver færdig, og derfor starter en ny.

access_log ?, hvor finder jeg den?.
Avatar billede dennismp Nybegynder
19. juli 2009 - 13:55 #11
Normalt opfører cron så ikke sådan. Hvis et script fejler (eller kommer med output), bliver outputtet typisk mailet til brugeren der ejer crontasken. Prøv at skrive mail og se om der ligger noget.

access_log kan ligge mange steder. Kig i din apache configuration og se efter ErrorLog og CustomLog. Men typisk ligger de i /var/log/, kig efter apache eller httpd.
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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