Cosa significa `riga 19: 12364 Killed` nel messaggio di errore crontab?


10

Ho un compito quotidiano crontab:

50 1 * * * sh /my_path/daily_task.sh > /tmp/zen_log 2>&1

Questo script shell daily_task eseguirà alcuni script Python e produrrà un file di dati.

E fallisce per due notti. Ma quando sono arrivato la mattina, ho eseguito manualmente gli script Python, ho ottenuto il file di dati. Oppure ho impostato un nuovo crontab che ha impostato solo la data 0 10 * * *e anche questo crontab ha successo.

Quindi ieri ho inserito > /tmp/zen_log 2>&1l'attività cron per ottenere un messaggio di errore.

E questa mattina, ho ricevuto questo messaggio di errore in zen_log:

/my_path/daily_task.sh: line 19: 12364 Killed /usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1

Sembra che qualche processo sia stato ucciso? Ma cosa significa esattamente line 19: 12364 Killed?


PS:

Oggi, un minuto fa, quando eseguo manualmente lo script Python, ho ottenuto: /usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1 Killed


Cosa c'è line 19nella sceneggiatura? Forse pubblicare il tuo script ci aiuterà a fornirti una risposta.
Devnull,

line 19è/usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1
Zen,

Puoi aggiornare la tua domanda con il contenuto di daily_task.sh? È difficile capire perché fallisce 1:50 amma riesce a ottenere 10 amle informazioni finora.
Devnull,

3
Controlla anche il contenuto di /var/log/messagesMi chiedo se il tuo script stia creando un errore di memoria esaurita (OOM) e venga ucciso. Il tuo sistema tende ad eseguire altri script / applicazioni / lavori affamati di risorse di sistema durante le ore notturne rispetto alle ore AM?
Devnull,

@DevNull, ho controllato il registro del kernel, ora sono sicuro che questo script ha occupato troppa memoria e il kernel l'ha ucciso.
Zen,

Risposte:


17

Spesso quando si verificano applicazioni killed, è sempre una buona idea dare una rapida occhiata al /var/log/messagesfile per vedere se il kernel sta uccidendo il processo. Il trigger più comune (nella mia esperienza) è sempre stato dovuto a errori di memoria insufficiente (OOM), poiché la mia azienda utilizza principalmente applicazioni java, è abbastanza comune per gli sviluppatori pubblicare un aggiornamento del codice errato che attiva un evento OOM .

Pianificare le attività quando il sistema operativo ha le risorse più disponibili è probabilmente il motivo per cui riesce nelle fasce orarie AM e non nel PM quando alla maggior parte delle persone piace pianificare i lavori del sistema di tassazione. Semplici soluzioni a ciò sono aumentare le risorse del sistema, limitare le risorse allocate al codice o spostarsi quando i lavori sono programmati in modo che non siano in conflitto.


1
Solo un'ulteriore nota che per impostazione predefinita Ubuntu ha prodotto l'output messagesin syslog invece di/var/log/messages
oak
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.