Cron beendet sich

chris4000

Member
Unter Debian Squeeze beendet sich cron ohne Fehlermeldung. Es geht nicht um einen einzelnen Cronjob sondern den ganzen Dienst.

Code:
 /usr/sbin/cron[...]: (CRON) INFO (pidfile fd = 3)
 /usr/sbin/cron[...]: (CRON) STARTUP (fork ok)
 /usr/sbin/cron[...]: (CRON) INFO (Running @reboot jobs)

Ich kann cron manuell neu starten, aber nach ein paar Minuten beendet er sich wieder, ohne Fehlermeldung.

Wie kann ich den Grund finden?
 
Von welchem crond sprechen wir denn? Vixie Cron?
Da könntest du ihn mit "cron -f -L 2" starten und warten bis er wegbricht.
Alternativ auch über "strace -ff -s5000 cron -f -L2" starten und schauen was ihn killt.
 
In /etc/cron.d/cron-apt steht unter anderem
Code:
* * * * * root /root/write.sh

/root/write.sh ist
Code:
#!/bin/bash
echo `date` "My string" >> /root/myfile.txt

Cron beendet sich ohne Kommentar. Diesmal nach sieben Minuten. Zuvor wurde das Script minütlich ausgeführt:
Code:
Sep 23 13:30:02 server /USR/SBIN/CRON[12262]: (root) END (/root/write.sh  )

Wenn ich Cron in einem screen mit "cron -f -L 2" aufrufe, scheint er länger zu laufen, als wenn ich ihn mit "/etc/init.d/cron start" aufrufe.
 
Dann versuchs über die strace Variante.
Wie sehen die Ressourcen von dem System aus? (O)VZ VE mit UBCs? Dediziertes System? Numfiles? Ram?
 
strace läuft gerade.

Es ist ein OpenVZ Server.

Code:
root@server:~# free -m
             total       used       free     shared    buffers     cached
Mem:           512         89        423          0          0          0
-/+ buffers/cache:         89        423
Swap:            0          0          0

root@server:~# cat /proc/user_beancounters 
Version: 2.5
       uid  resource                     held              maxheld              barrier                limit              failcnt
   256319:  kmemsize                  6129835             14564510             51200000             51200000                    0
            lockedpages                     0                  968                 2048                 2048                    0
            privvmpages                 22177                76709               131200               262200                    0
            shmpages                     1414                 3462               128000               128000                    0
            dummy                           0                    0                    0                    0                    0
            numproc                        28                   64                  500                  500                    0
            physpages                    9530                61049                    0  9223372036854775807                    0
            vmguarpages                     0                    0               512000               512000                    0
            oomguarpages                 9534                61067               512000               512000                    0
            numtcpsock                     10                  148                 4096                 4096                    0
            numflock                        4                   10                 2048                 2048                    0
            numpty                          3                    4                   32                   32                    0
            numsiginfo                      0                   13                 1024                 1024                    0
            tcpsndbuf                  177368              2886112             20480000             20480000                    0
            tcprcvbuf                  163840              5821312             20480000             20480000                    0
            othersockbuf                 4656               170752             20480000             20480000                    0
            dgramrcvbuf                     0                 9776             10240000             10240000                    0
            numothersock                    6                   31                 2048                 2048                    0
            dcachesize                 212214               324894             10240000             10240000                    0
            numfile                       756                 1714                50000                50000                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            numiptent                      24                   24                 2048                 2048                    0

Vom Speicher und den Beancounters her sollte das doch passen, oder? Im Prinzip läuft auch nur Apache (mit sehr wenigen Besuchern) drauf.

Ich lasse jetzt mal den strace laufen und poste das Ergebnis hier. Bin gespannt, woran das liegt!
 
Gemieteter vServer?
Welche Cronjobs existieren alle?
Wie sieht die Auslastung des Systems, während die Cronjobs laufen, aus?

Bei auffälligen oder ressourcenintensiven Cronjobs wird auch schon ganz gern mal von Hostsystem-Seite gekillt. ;)
 
Gemieteter vServer?

Ja.

Welche Cronjobs existieren alle?

  • cron-apt
  • Shell Script mit echo Befehl (s.o.)
  • PHP5: ein Script, das alte Sessions löscht (/usr/lib/php5/maxlifetime)

Wie sieht die Auslastung des Systems, während die Cronjobs laufen, aus?

Es sind keine aufwändigen Jobs dabei. Ich deaktiviere jetzt mal alle bis auf das o.g. echo Script.

Bei auffälligen oder ressourcenintensiven Cronjobs wird auch schon ganz gern mal von Hostsystem-Seite gekillt. ;)

Damit hätte ich wirklich nicht gerechnet.

Cron war jetzt mal wieder beendet. strace hat einiges ausgegeben. In der Datei mit der Cron pid steht:
Code:
restart_syscall(<... resuming interrupted call ...>) = 0
stat("crontabs", {st_mode=S_IFDIR|S_ISVTX|0730, st_size=4096, ...}) = 0
stat("/etc/crontab", {st_mode=S_IFREG|0644, st_size=719, ...}) = 0
stat("/etc/cron.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/etc/cron.d/php5", {st_mode=S_IFREG|0644, st_size=475, ...}) = 0
stat("/etc/cron.d/cron-apt", {st_mode=S_IFREG|0644, st_size=517, ...}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2abb221424d0) = 28582
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {59, 969972000})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 28582
wait4(-1, 0x7fffc3bcf56c, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, 0x7fffc3bcfb80)      = 0
stat("crontabs", {st_mode=S_IFDIR|S_ISVTX|0730, st_size=4096, ...}) = 0
stat("/etc/crontab", {st_mode=S_IFREG|0644, st_size=719, ...}) = 0
stat("/etc/cron.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/etc/cron.d/php5", {st_mode=S_IFREG|0644, st_size=475, ...}) = 0
stat("/etc/cron.d/cron-apt", {st_mode=S_IFREG|0644, st_size=517, ...}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2abb221424d0) = 28645
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {59, 971725000})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 28645
wait4(-1, 0x7fffc3bcf56c, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, 0x7fffc3bcfb80)      = 0
stat("crontabs", {st_mode=S_IFDIR|S_ISVTX|0730, st_size=4096, ...}) = 0
stat("/etc/crontab", {st_mode=S_IFREG|0644, st_size=719, ...}) = 0
stat("/etc/cron.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/etc/cron.d/php5", {st_mode=S_IFREG|0644, st_size=475, ...}) = 0
stat("/etc/cron.d/cron-apt", {st_mode=S_IFREG|0644, st_size=517, ...}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2abb221424d0) = 29725
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {59, 969066000})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 29725
wait4(-1, 0x7fffc3bcf56c, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, 0x7fffc3bcfb80)      = 0
stat("crontabs", {st_mode=S_IFDIR|S_ISVTX|0730, st_size=4096, ...}) = 0
stat("/etc/crontab", {st_mode=S_IFREG|0644, st_size=719, ...}) = 0
stat("/etc/cron.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/etc/cron.d/php5", {st_mode=S_IFREG|0644, st_size=475, ...}) = 0
stat("/etc/cron.d/cron-apt", {st_mode=S_IFREG|0644, st_size=517, ...}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2abb221424d0) = 29784
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2abb221424d0) = 29785
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {59, 952348000})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 29785
wait4(-1, 0x7fffc3bcf56c, WNOHANG, NULL) = 0
rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {59, 993543000})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 29784
wait4(-1, 0x7fffc3bcf56c, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, 0x7fffc3bcfb80)      = 0
stat("crontabs", {st_mode=S_IFDIR|S_ISVTX|0730, st_size=4096, ...}) = 0
stat("/etc/crontab", {st_mode=S_IFREG|0644, st_size=719, ...}) = 0
stat("/etc/cron.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/etc/cron.d/php5", {st_mode=S_IFREG|0644, st_size=475, ...}) = 0
stat("/etc/cron.d/cron-apt", {st_mode=S_IFREG|0644, st_size=517, ...}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2abb221424d0) = 29842
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {59, 961216000})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 29842
wait4(-1, 0x7fffc3bcf56c, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, 0x7fffc3bcfb80)      = 0
stat("crontabs", {st_mode=S_IFDIR|S_ISVTX|0730, st_size=4096, ...}) = 0
stat("/etc/crontab", {st_mode=S_IFREG|0644, st_size=719, ...}) = 0
stat("/etc/cron.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/etc/cron.d/php5", {st_mode=S_IFREG|0644, st_size=475, ...}) = 0
stat("/etc/cron.d/cron-apt", {st_mode=S_IFREG|0644, st_size=517, ...}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2abb221424d0) = 29898
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2abb221424d0) = 29899
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {59, 939492000})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 29899
wait4(-1, 0x7fffc3bcf56c, WNOHANG, NULL) = 0
rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {59, 594354000})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 29898
wait4(-1, 0x7fffc3bcf56c, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, 0x7fffc3bcfb80)      = 0
stat("crontabs", {st_mode=S_IFDIR|S_ISVTX|0730, st_size=4096, ...}) = 0
stat("/etc/crontab", {st_mode=S_IFREG|0644, st_size=719, ...}) = 0
stat("/etc/cron.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/etc/cron.d/php5", {st_mode=S_IFREG|0644, st_size=475, ...}) = 0
stat("/etc/cron.d/cron-apt", {st_mode=S_IFREG|0644, st_size=517, ...}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2abb221424d0) = 29962
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {59, 971272000})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 29962
wait4(-1, 0x7fffc3bcf56c, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x4036f0, [CHLD], SA_RESTORER|SA_RESTART, 0x2abb219d6230}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0},  <unfinished ...>
+++ killed by SIGKILL +++

Außerdem habe ich 32 weitere strace-Logfiles mit jeweils ca. 20 KB. Da weiß ich allerdings noch nicht, was an (persönlichen) Daten drinsteht und lade die deshalb erstmal noch nicht hoch.

Leider sagt mir die strace Ausgabe nicht viel. Kannst du daraus etwas erkennen?
 
Code:
nanosleep({60, 0},  <unfinished ...>
+++ killed by SIGKILL +++

Der Prozess wartet und wird mittels SIGKILL (kill -9) abgeschossen. OOM Situation lässt sich ausschließen, sonst würden die UBCs die Failcouner hochzählen.
Kannst du mal auf die Uhrzeiten schauen, wann er gekillt wird? Also nicht in welchen Abständen, sondern wirklich die konkreten Uhrzeiten.

Vielleicht lässt sich eine Regelmäßigkeit erkennen.

Edit:
Falls es der Betrieb zulässt, boote doch bitte mal ein Rescue/Recovery des Hosters. Wenn dort der crond auch gekillt wird, liegt es nahe, dass es vom Hostsystem kommt. ;)
 
Last edited by a moderator:
Kannst du mal auf die Uhrzeiten schauen, wann er gekillt wird? Also nicht in welchen Abständen, sondern wirklich die konkreten Uhrzeiten.
Vielleicht lässt sich eine Regelmäßigkeit erkennen.

13:30, 14:40, 16:07 Uhr. Ich weiß jetzt allerdings nicht mehr, wann mein ein minütiger Cronjob lief und wann ich ihn mal deaktiviert habe. Die Zeiten sind möglicherweise unvollständig.

Falls es der Betrieb zulässt, boote doch bitte mal ein Rescue/Recovery des Hosters. Wenn dort der crond auch gekillt wird, liegt es nahe, dass es vom Hostsystem kommt. ;)

Wie heißt die Funktion im vePortal? Es scheint kein Rescue System zu geben.
 
Danke für die Hilfe, Firewire2002.

Inzwischen habe ich in anderen Foren gelesen, dass andere das gleiche Problem haben und ebenfalls den Verdacht, dass cron vom Hostsystem gekillt wird. Ich habe jetzt ein Ticket geöffnet - und suche mir ggf. einen anderen Hoster.

Vielleicht waren 7 GB Traffic pro Monat für die Mischkalkulation zu viel. :confused: Oder crond wird generell gekillt.
 
Back
Top