Shell script will nicht richtig laufen in einem cronjob

C

cladonia

Grünschnabel
Es ist Oracle Linux 8 im Einsatz

Das shell script ist so aufgebaut

Name = stop_start_reddy.sh

Bash:
#!/bin/bash
kill $(pgrep -f 'reddy')
kill $(pgrep -f 'google')
/usr/bin/python /home/opc/reddy/reddy_sc3.py &

Starte ich jetzt das Python script zuerst

/usr/bin/python /home/opc/reddy/reddy_sc3.py &

läuft der Prozess los. Sobald ich das stop_start_reddy.sh von der cli aufrufe, killt der alle Prozesse reddy und google und startet das Python Script neu.
Soweit funktioniert das.

Jetzt habe ich das in einen Cronjob eingegeben

* */4 * * * /home/opc/reddy/stop_start_reddy.sh

Nach 4 Stunden habe ich hier leider das Verhalten, er killt reddy und google Prozesse, startet aber das Python Script nicht mehr neu.
Hat einer eine Idee wo ich hier einen Denkfehler habe?

Auch funktioniert es, wenn ich die kill Kommandos und das Python Script jeweils ein eigenes Script erstelle und im Cronjob diese verzögert abarbeiten lasse.
Das funktioniert auch. Nur nicht alles zusammen in einem Script.
 
M

marce

Kaiser
Ich vermute, dass das Script den Job gleich wieder killt, während der noch am hochfahren ist (oder schon wieder läuft)

Deine crontab sagt nämlich: "wenn die Stunde durch 4 teilbar ist führe den Job jede Minute aus".
(also um 00:00, 00:01, 00:02, ... 00:59, 04:00, 04:01, 04:02, ...)

Du suchst vermutlich
Code:
0 */4 * * *
... wobei das grundsätzlich nach einer kruden Lösung für ein Problem aussieht, welches man anderweitig angehen sollte...
 
C

cladonia

Grünschnabel
Danke erst mal. Zum testen hatte ich das auch mal so eingetragen, damit ich schneller einen Fehler sehe oder erkenne

*/5 * * * * /home/opc/reddy/stop_start_reddy.sh

Ich hatte auch mal das versucht mit sleep

Bash:
#!/bin/bash
kill $(pgrep -f 'reddy')
kill $(pgrep -f 'google')

sleep 120

/usr/bin/python /home/opc/reddy/reddy_sc3.py &

Leider brachte das auch keinen Erfolg.
 
M

marce

Kaiser
dann mach ein paar Debugausgaben / Loggings rein.

Ggf, je nach dem wie das Script von Dir heißt schießt Du dich mit dem pgrep auch selbst ab...
 
Oben