1

Тема: bash автоматичний запуск python скрипта

Добрий день, хочу щоб баш запускав пайтон скрипт та відслідковував коли він закриється а через годину запускав його знову, чи реально таке зробити? буду вдячний за підказки ;)

2

Re: bash автоматичний запуск python скрипта

То не баш, а крон (cron) він може запускати скрипти з певним інтервалом. Але вам самим треба у вашому скрипті перевіряти, чи інша копія вже запущена і коли остання була завершена.
Наприклад крон може запускати скрип кожну хвилину.цей скрип може перевіряти певний лок файл, якщо цей файл створенний, значить інша копія вже виконується і завершувати виконання. Якщо лок файлу нема, то створити його і продовжити виконання. Аналогічно можна писати в базу або лог файл коли скрип завершився, і при запуску перевіряти чи вже пройшло достатньо часу.

Якщо вам просто що години запускати скрип, не залежно від того коли попередній завершився, то це один рядочок в crontab.

Подякували: koala, Zolin_777, leofun013

3

Re: bash автоматичний запуск python скрипта

at команда в консолі

Подякували: Zolin_777, ping, dot, leofun014

4 Востаннє редагувалося ping (07.05.2020 19:01:28)

Re: bash автоматичний запуск python скрипта

раніше виконував щось подібне - то теж ранив кроном пайтонівський скрипт
але всі ці локи і т.п.

потім деколи треба підготувати environment, встановити якісь змінні, - переконатися що впн - піднято, стартувати контейнер в докері, взнати exit_code попередньої команди чи скрипта, тощо

зараз  пишу все таки на баші, який запускається по крону (хоч це і забирає більше часу, бо баш доводиться вчити по ходу ))
а вже баш вичисляє що в якій послідовності запускати і готує грунт для цього.

приклад як крон ранить пітонівсьй скрипт:

admin@pb:~$ cat /etc/crontab
# /etc/crontab: system-wide crontab

MAILTO=admin
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user    command
17 *    * * *    root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

29 1    * * *    root    /home/docker_admin/restart_containers.py >> /home/docker_admin/restart_containers.log
Подякували: Zolin_777, leofun012

5

Re: bash автоматичний запуск python скрипта

Vo_Vik написав:

То не баш, а крон (cron) він може запускати скрипти з певним інтервалом. Але вам самим треба у вашому скрипті перевіряти, чи інша копія вже запущена і коли остання була завершена.
Наприклад крон може запускати скрип кожну хвилину.цей скрип може перевіряти певний лок файл, якщо цей файл створенний, значить інша копія вже виконується і завершувати виконання. Якщо лок файлу нема, то створити його і продовжити виконання. Аналогічно можна писати в базу або лог файл коли скрип завершився, і при запуску перевіряти чи вже пройшло достатньо часу.

Якщо вам просто що години запускати скрип, не залежно від того коли попередній завершився, то це один рядочок в crontab.

так, мені потрібно кожу годину, завершуватися він буде сам, як це зробити одним рядком підкажіть будь ласка, скрипт на пайтоні написаний, а то не можу розібратися щоб кожну годину включався

6 Востаннє редагувалося Zolin_777 (07.05.2020 21:24:56)

Re: bash автоматичний запуск python скрипта

Запустив, усім дякую ;)

7

Re: bash автоматичний запуск python скрипта

Zolin_777 написав:

Добрий день, хочу щоб баш запускав пайтон скрипт та відслідковував коли він закриється а через годину запускав його знову, чи реально таке зробити? буду вдячний за підказки ;)

timer в systemd, вам лиш треба pid файл щоб був, а решту в systemd  налаштуєте.

Подякували: Zolin_7771