Dies kann durch repliziert werden
sh -c 'pkill -f "MyExecutable.exe" ; touch /tmp/here.log'
Cron führt Ihren Befehl aus, indem er ihn an eine Shell ( sh
oder eine andere) weitergibt, so dass er der obigen Zeile sehr ähnlich ist. Unabhängig davon, ob irgendwelche ausgeführt wird MyExecutable.exe
oder nicht, pkill -f
stimmt (auch) mit der Shell überein und tötet sie, bevor sie ausgeführt wird touch
. Das ist weil
Das Muster wird normalerweise nur mit dem Prozessnamen abgeglichen. Wenn festgelegt
-f
ist, wird die vollständige Befehlszeile verwendet.
(Quelle: man 1 pkill
)
Mögliche Lösungen:
Wenn Sie nicht brauchen
-f
, lassen Sie es einfach fallen:42 17 * * 1-5 /bin/pkill 'MyExecutable.exe' ; touch /tmp/here.log
Wenn du es brauchst
-f
, führetouch
vorher auspkill
:42 17 * * 1-5 touch /tmp/here.log ; /bin/pkill -f 'MyExecutable.exe'