Как сделать тайм аут на выполнение команды crontab
Доброе утро, у меня не выполняется код python с модулями, через командную строку все работает и сам код и через bash файл тоже все отрабатывается штатно, логи crontab не особо информативны (пишет нет модуля cv2) Думаю нужно поставить выдержку (таймаут) на выполнение команды, где то на форумах попадалось один раз такая тема сейчас не могу найти. Помогите пожалуйста, вот баш
#!/bin/bash
# Переход в директорию проекта
cd /home/user/MyProger
# Активация виртуалки
source /home/user/MyProger/venv3.10/bin/activate
# Выполнить скрипт Python
python3 /home/user/MyProger/main.py
вот крон
* * * * * /home/user/MyProger/myscript.sh
Скрипт запускается каждую минуту камера на ноутбуке загорается и гаснет думаю просто не успевает прогрузится до конца
вот /var/log/syslog
May 17 13:29:01 user-HP-Laptop-15-bw0xx CRON[22553]: (user) CMD (/home/user/MyProger/myscript.sh) May 17 13:29:01 user-HP-Laptop-15-bw0xx CRON[22555]: (root) CMD (/home/user/MyProger/myscript.sh) May 17 13:29:01 user-HP-Laptop-15-bw0xx postfix/pickup[21417]: A261EB402ED: uid=0 from= May 17 13:29:01 user-HP-Laptop-15-bw0xx postfix/cleanup[20830]: A261EB402ED: message-id=<20240517072901.A261EB402ED@user-HP-Laptop-15-bw0xx> May 17 13:29:01 user-HP-Laptop-15-bw0xx postfix/qmgr[8856]: A261EB402ED: from=<root@user-HP-Laptop-15-bw0xx>, size=794, nrcpt=1 (queue active) May 17 13:29:01 user-HP-Laptop-15-bw0xx postfix/local[20832]: A261EB402ED: to=<root@user-HP-Laptop-15-bw0xx>, orig_to=, relay=local, de> May 17 13:29:01 user-HP-Laptop-15-bw0xx postfix/qmgr[8856]: A261EB402ED: removed May 17 13:29:02 user-HP-Laptop-15-bw0xx postfix/pickup[21417]: 2E87AB402ED: uid=1000 from= May 17 13:29:02 user-HP-Laptop-15-bw0xx postfix/cleanup[20830]: 2E87AB402ED: message-id=<20240517072902.2E87AB402ED@user-HP-Laptop-15-bw0xx> May 17 13:29:02 user-HP-Laptop-15-bw0xx postfix/qmgr[8856]: 2E87AB402ED: from=<user@user-HP-Laptop-15-bw0xx>, size=1157, nrcpt=1 (queue activ> May 17 13:29:02 user-HP-Laptop-15-bw0xx postfix/local[20832]: 2E87AB402ED: to=<user@user-HP-Laptop-15-bw0xx>, orig_to=, relay=local, de> May 17 13:29:02 user-HP-Laptop-15-bw0xx postfix/qmgr[8856]: 2E87AB402ED: removed May 17 13:29:48 user-HP-Laptop-15-bw0xx kernel: [21098.921903] rtw_8723de 0000:02:00.0: failed to get tx report from firmware
Вот отчет если набрать в терминале mail
Return-Path: <user@user-HP-Laptop-15-bw0xx>
X-Original-To: user
Delivered-To: user@user-HP-Laptop-15-bw0xx
Received: by user-HP-Laptop-15-bw0xx (Postfix, from userid 1000)
id 24168B4050D; Thu, 16 May 2024 14:49:01 +0600 (+06)
From: root@user-HP-Laptop-15-bw0xx (Cron Daemon)
To: user@user-HP-Laptop-15-bw0xx
Subject: Cron <user@user-HP-Laptop-15-bw0xx> python3 /home/user/MyProger/main.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/user>
X-Cron-Env: <LOGNAME=user>
Message-Id: <20240516084905.24168B4050D@user-HP-Laptop-15-bw0xx>
Date: Thu, 16 May 2024 14:49:01 +0600 (+06)
X-IMAPbase: 1715913606 148
X-UID: 1
Status: R
Traceback (most recent call last):
File "/home/user/MyProger/main.py", line 1, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'
Ребят да как так то простейший код
import cv2
video_capture = cv2.VideoCapture(0)
if not video_capture.isOpened():
print("Cannot open url")
exit()
while True:
ret, frame = video_capture.read()
if not ret:
print("Can't receive frame. Exiting...")
break
cv2.imshow("Video", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
video_capture.release()
cv2.destroyAllWindows()
и так писал в кроне
* * * * * cd ~/MyProger && . .venv3.10/bin/activate && python3 main.py > /tmp/out1 2>&1
и полностю путь писал без всяких точек через source, скрипт и через bash и просто в терминале набираешь команды все работает, а через crontab камера загорается и гаснет, почему витруалка не запускается кроном. Установлено 2 виртуалки venv3.10 и venv3.11 и там итам все пакеты модулей установлены любую activate потом deactivate другую запускаешь все работает через sh myscript.sh