1

Тема: Демононізація скрипта

потрібно створити демон скрипта  . щоб він автоматично запускався з ос і без виводу роботи в термінал(просто працював як фоновий процес)

знайшов код. Тільки куди пихати власний код я не знаю .   = (

https://github.com/django/django/blob/m … emonize.py

2

Re: Демононізація скрипта

Оцей код і є тілом демона. Зручніше, правда, винести його в окрему функцію.

 si = open('/dev/null', 'r')
        so = open(out_log, 'a+', buffering)
        se = open(err_log, 'a+', buffering)
        os.dup2(si.fileno(), sys.stdin.fileno())
        os.dup2(so.fileno(), sys.stdout.fileno())
        os.dup2(se.fileno(), sys.stderr.fileno())
        # Set custom file descriptors so that they get proper buffering.
        sys.stdout, sys.stderr = so, se

3

Re: Демононізація скрипта

https://pypi.python.org/pypi/python-daemon
https://pypi.python.org/pypi/daemonize

http://stackoverflow.com/questions/4736 … -in-python

Хоча особисто бы я краще просто запускав це через supervisord

Подякували: 0xDADA11C7, bunyk2

4

Re: Демононізація скрипта

Singularity написав:

https://pypi.python.org/pypi/python-daemon
https://pypi.python.org/pypi/daemonize

http://stackoverflow.com/questions/4736 … -in-python

Хоча особисто бы я краще просто запускав це через supervisord

детальніше просупервісорд ?

5

Re: Демононізація скрипта

Сайте http://supervisord.org/
Приклад http://proft.me/2011/05/28/supervisor-k … pomilovat/

Подякували: Blast, bunyk2

6

Re: Демононізація скрипта

Тобто мені потрібно помістити свій код сюди

#!/usr/bin/python

import signal, time, logbook

log = logbook.Logger('APP')
handler = logbook.FileHandler('app.log')

def log_info(msg):
    with handler.applicationbound():
        log.info(msg)

def log_warn(msg):
    with handler.applicationbound():
        log.warn(msg)

def sigterm_handler(signum, frame):
    log_warn('Someone killed me.')
    exit(0)

if __name__ == "__main__":
    signal.signal(signal.SIGTERM, sigterm_handler)
    while True:
        СЮДИ ВПИСАТИ ВЛАСНИЙ РОБОЧИЙ КОД
        time.sleep(1)

7

Re: Демононізація скрипта

Ап

8

Re: Демононізація скрипта

Blast написав:

Ап

Можна було б просто спробувати. Це було б набагато швидше.

9

Re: Демононізація скрипта

Singularity написав:
Blast написав:

Ап

Можна було б просто спробувати. Це було б набагато швидше.

Я не знаю як його зупинити . Вбити процес не можу бо не пожу знайти по ід

10

Re: Демононізація скрипта

up

11

Re: Демононізація скрипта

Пишеш скрипт, як просто скрипт наприклад program.py, потім

pip install supervisor
echo_supervisord_conf > supervisord.conf

В отриманий конфігураційний файл дописуємо:

[program:program]
command=python program.py
stdout_logfile=./program.log

Після чого:

supervisord -c supervisord.conf # запускаємо супервізор з нашим конфігом
supervisorctl status program # показує статус нашої програми
supervisorctl status # статус всіх програм гіпервізора
supervisorctl stop program # зупинити програму
supervisorctl start program # запустити програму

Замість program можна якесь краще ім’я підібрати.

Подякували: 0xDADA11C7, Blast, Singularity3

12

Re: Демононізація скрипта

bunyk написав:

Пишеш скрипт, як просто скрипт наприклад program.py, потім

pip install supervisor
echo_supervisord_conf > supervisord.conf

В отриманий конфігураційний файл дописуємо:

[program:program]
command=python program.py
stdout_logfile=./program.log

Після чого:

supervisord -c supervisord.conf # запускаємо супервізор з нашим конфігом
supervisorctl status program # показує статус нашої програми
supervisorctl status # статус всіх програм гіпервізора
supervisorctl stop program # зупинити програму
supervisorctl start program # запустити програму

Замість program можна якесь краще ім’я підібрати.


Ось тепер зрозуміло. Вельми вдячний.