Это может быть воспроизведено
sh -c 'pkill -f "MyExecutable.exe" ; touch /tmp/here.log'
Cron запускает вашу команду, передавая ее в оболочку ( sh
или другую), поэтому она очень похожа на приведенную выше строку. Независимо от того, MyExecutable.exe
запускается ли он или нет, pkill -f
сопоставляет (также) оболочку и убивает ее до того, как она запустится touch
. Это потому что
Шаблон обычно сопоставляется только с именем процесса. Когда
-f
установлено, используется полная командная строка.
(Источник: man 1 pkill
)
Возможные решения:
Если вам не нужно
-f
, просто бросьте его:42 17 * * 1-5 /bin/pkill 'MyExecutable.exe' ; touch /tmp/here.log
Если вам нужно
-f
, запуститеtouch
передpkill
:42 17 * * 1-5 touch /tmp/here.log ; /bin/pkill -f 'MyExecutable.exe'