Моно исполняемый файл не будет запускаться из crontab на Mac - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь заставить моно исполняемый файл запускаться автоматически в определенное время каждый день, однако он не запускается из crontab.

Используя crontab -e, я поставил следующую запланированную задачу:

10 15 * * * (cd ~/Documents/automation && bash auto_run.sh)

Внутри файла auto_run.sh у меня есть следующее:

#!/bin/bash
echo “`date “+%Y-%m-%d %H:%M:%S”` : auto run starting >> auto_run_logging.txt

mono /Users/admin/Projects/auto_task/auto_task/bin/Debug/auto_task.exe

echo “`date “+%Y-%m-%d %H:%M:%S”` : auto run ending >> auto_run_logging.txt

Я использовал chmod +x для файлов, чтобы убедиться, что они выполняются.

В назначенное время сообщения о дате / времени можно увидеть в текстовом файле, но моно исполняемый файл не запускается. Запуск файла напрямую из терминала с помощью bash auto_run.sh работает отлично.

Любая помощь приветствуется. Я использую macOS Mojave

1 Ответ

1 голос
/ 02 октября 2019

Это происходит потому, что mono не может найти путь, по которому он должен идти из крона.

Либо вы можете указать путь в .bash_profile и получить его во время работы крона. Или запустите which mono и укажите путь внутри скрипта, из которого он запускает команду mono.

Команда:

which mono # Это даст вам путь, где monoприсутствует.

Сценарий будет выглядеть так:

#!/bin/bash
echo “`date “+%Y-%m-%d %H:%M:%S”` : auto run starting >> auto_run_logging.txt

/path/to/mono/mono /Users/admin/Projects/auto_task/auto_task/bin/Debug/auto_task.exe

echo “`date “+%Y-%m-%d %H:%M:%S”` : auto run ending >> auto_run_logging.txt

Другой способ - положить mono path в .bash_profile и запустить cron следующим образом:

10 15 * * * . ~/.bash_profile; (cd ~/Documents/automation && bash auto_run.sh)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...