Вы можете использовать crontab
для планирования ваших сценариев, и вы упомянули, что вы также можете убить свои сценарии с помощью crontab
. Вы можете создать startup.sh
сценарий и какой-то shutdown.sh
, который будет управлять вашим расписанием.
Ниже приведен пример:
Ваш python скрипт скажет your_script.py
:
import ...
# from custom file import `VideoCamera` which has access to `VideoWriter`
from camera import VideoCamera
video_camera = VideoCamera(
flip = False,
usePiCamera = False,
resolution = (640, 480),
record = False,
record_duration = None,
record_timestamp = True
)
first_arg = sys.argv[1]
second_arg = sys.argv[2]
third_arg = sys.argv[3]
# pass the above arguments here in the function
if __name__ == '__main__':
t = threading.Thread(target=processing_fun, args=())
t.daemon = True
t.start()
print("To see feed connect to " + get_ip_address() + ":5000")
# to do, read ifconfig and assign IP using raspberry's IP
app.run(host='0.0.0.0', port = 5000, debug=False)
cron- python скрипт для планирования вашего python скрипта:
Назовите этот скрипт как schedule_cron_ python .py и вызовите его для управления вашим расписанием. Здесь вы можете хранить весь этот код внутри функции, а также передавать аргументы в этот скрипт cron, например, дату и время, на которое вы хотите запланировать, и, в свою очередь, управлять этим с помощью другого скрипта cron. (1-й вариант)
from crontab import CronTab
import os
import sys
cron = CronTab(user='sshuser')
job1 = cron.new(command="python3 your_script.py 'arg1' 'arg2' 'arg3'")
job1.hour.on(5) # Mention your own time here
job1.minute.on(30)
for item in cron:
print(item)
print(job1.enable())
cron.write()
#print(os.getcwd())
2-й вариант:
Создать отдельные startup.sh
и shutdown.sh
Эти файлы будут содержать только команду, такую как nohup
, которая будет просто вызовите ваш скрипт:
nohup python3 your_script.py
Теперь вы можете вызывать эти .sh
файлы в вашем скрипте cron для управления вашим расписанием.
from crontab import CronTab
import os
import sys
cron = CronTab(user='sshuser')
job1 = cron.new(command="sh startup.sh")
job1.hour.on(5) # Mention your own time here
job1.minute.on(30)
job2 = cron.new(command="sh shutdown.sh")
job1.hour.on(6) # Mention your own time here
job1.minute.on(30)
for item in cron:
print(item)
print(job1.enable())
cron.write()
Обратитесь к этому, чтобы получить больше информации о cron и еще несколько полезных функций. https://pypi.org/project/python-crontab/