Как я могу запустить программу в определенное время c многократно в WSL? - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь запускать две программы каждые 24 часа. Один (program1) должен начаться в 00:00, а другой (program2) - в 23:59. Я попытался использовать crontab следующим образом:

00 00 * * * /home/user/DESKTOP/program1
59 23 * * * /home/user/DESKTOP/program2

обе программы уже скомпилированы и сохранены в одном каталоге на сервере. Я даже пытался запустить программу basi c hello world c, но она все равно не работает. Большинство примеров, которые я нашел, использовали bash сценарии, которые я не использую, если мне нужно вместо этого создать файл bash для запуска исполняемых файлов.

1 Ответ

0 голосов
/ 22 января 2020

Сначала я бы попробовал очень простой тест, более простой, чем те, которые вы пробовали.

Запустите crontab -e, затем в нижней части списка введите * * * * * touch ~/crontab.touched.

This будет прикасаться к файлу в вашем домашнем каталоге каждую минуту, просто go для пользователя dir cd ~, а затем ls -al, чтобы увидеть метку времени в этом файле, она всегда должна быть обновленной.

Этот тест покажет вам, что задача на самом деле выполняется.

Вы также можете запустить crontab -l, чтобы просмотреть список всех запущенных задач cron.

Я выполняю WSL 1 и мне не нужно было изменять какие-либо разрешения для каких-либо файлов / папок / групп пользователей, чтобы выполнить этот запуск.

После того, как вы запустите простой случай, я бы посмотрел на запуск ваших программ в течение небольшого периода времени для тестирования. как каждые 5 минут или около того */5 * * * * /home/user/DESKTOP/program1

Мой последний вопрос касается пути к программе1, он не выглядит правильным. В WSL go к каталогу, в котором находится программа, которую вы хотите запустить, и наберите pwd, это покажет вам каталог, который вы должны использовать в выражении crontab. По сути, если вы можете запустить программу, находясь в домашнем каталоге cd ~, она должна работать в cron.

, дайте мне знать, как вы попали.

...