Запуск программы с использованием задания cron

Программа видеонаблюдения работает на ПК, и мне нужно, чтобы она всегда работала и сверху, но иногда может возникнуть проблема в программе и завершить ее. Поэтому мне нужен скрипт, чтобы проверить, не запущена ли программа и запустить ее.

Я использовал задачу cron для задания, я написал это задание cron для запуска скрипта:

*/1 * * * * /home/masoud/Desktop/vision3/cron.sh 

и cron.sh:

 cd "${0%/*}" if pgrep -x "video" > /dev/null then echo "running" else /home/masoud/Desktop/vision3/video & fi 

Cron.sh делает работу корректно, задание cron запускает скрипт, но он кратковременно завершает его. Я вижу, что мой светодиод веб-камеры включается на секунду. Что я делаю не так?

  • Дата линии Crontab
  • Как начать работу cron без перезагрузки?
  • Работа в Cron работает чаще, чем я думал, что это должно
  • Запуск нескольких заданий cron, где одна работа занимает много времени
  • Как я могу узнать, когда была запущена работа cron или она разбилась?
  • Синтаксис Crontab: использование «*» для значения минут
  • Работы Cron работают на 1 час, в общем несогласие с системными временами
  • Где работает этот cronjob?
  • One Solution collect form web for “Запуск программы с использованием задания cron”

    Работы Cron не подходят для управления настольными приложениями. Вам было бы лучше запустить приложение из сценария цикла цикла; на его простейшем

     #!/bin/sh cd /home/masoud/Desktop/vision3 while :; do ./vision; done 

    Таким образом, когда vision прекращается, оно будет запущено снова.

    Возможно, вам захочется спланировать стратегию выхода, когда вы действительно хотите остановить программу. Это сделало бы:

     #!/bin/sh cd /home/masoud/Desktop/vision3 while [ ! -f no_vision ]; do ./vision; done 

    Затем, когда вы хотите остановить программу,

     touch /home/masoud/Desktop/vision3/no_vision 

    и закройте его – скрипт оболочки тоже остановится.

    Linux и Unix - лучшая ОС в мире.