Запуск программы с использованием задания 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
  • Cronjob (ы) для нескольких пользователей
  • Cronjob запускает скрипт каждые 3 недели в среду
  • Почему crontab -e отличается от менее / etc / crontab?
  • Как root, как я могу перечислить crontab для всех пользователей?
  • Что делает * / 13 в crontab?
  • Как я могу начать cronjob через 1 час каждый день?
  • crontab исключает только определенную дату
  • 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 - лучшая ОС в мире.