как сделать кронтаб, который будет работать эффективно? [duplicate]

и я новичок в linux, извините, если этот вопрос такой тупой. Я хотел бы знать, чтобы создать crontab правильно, я создал работу, как указано ниже:

* * * * * /usr/src/debug/http/cron_job.sh >/dev/null 2>&1

внутри cron_job.sh, как указано ниже

pidof html
if [ 0 = $? ]
then
 echo running
else 
 cd /usr/src/debug/http/
 ./html
fi

но когда я проверяю запущенную программу, он показывает, что

2738 ? ... ./html
2748 ? ... ./html
2788 ? ... ./html

его кажется дубликат он запускает приложение, есть ли какие-либо неправильные с моей настройкой? любезно дайте мне знать, как решить эту проблему?

спасибо за вашу помощь.

-2
задан 6 November 2018 в 06:55
1 ответ

Ваше задание cron запускается с его текущим рабочим каталогом, установленным на домашний каталог пользователя, которому принадлежит задание. Когда вы указываете сценарий для выполнения как /usr/src/debug/http/cron_job.sh , это , а не не приводит к изменению рабочего каталога.

Итак, pidof html фактически делает то же самое, что и pidof $ HOME / html . Позже в сценарии выясняется, что исполняемый файл html на самом деле находится в / usr / src / debug / http / html , поэтому команде pidof html требуется полный путь к исполняемому файлу, который вы тестируете, поэтому замените его на:

pidof /usr/src/debug/http/html

Если / usr / src / debug / http / html на самом деле является сценарием, вам также необходимо добавить -x option:

pidof -x /usr/src/debug/http/html

Другой способ исправить сценарий - просто переместить команду cd / usr / src / debug / http в первую строку сценария задания cron, так что сценарий всегда будет переходить в правильный каталог, прежде чем даже пытаться проверить существование процесса html .

0
ответ дан 5 December 2019 в 21:34

Теги

Похожие вопросы