Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2009 16:06:29

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по сигналам

Задача следующая. Скрипт1 вызывает скрипт2 путем отправки ему сигнала USR1

import os
os.system('pkill USR1 script1.py')
Скрипт2 в это время ожидает этого вызова и как только будет вызвана выполняет что то, закончив работу опять должна ждать вызова
import signal
signal.signal(signal.SIGUSR1, func)
def func():
print "что то делает"
вижу что не понял на счет самой функции signal.signal() и ее параметров. буду благодарен за разъяснения.



Офлайн

#2 Окт. 22, 2009 10:29:33

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по сигналам

Нашел приличную литературку на счет сигналов в целом и модуля signal в том числе.
Код скрипта1 теперь таков:

import os, time
pid='11299'
i=0
while i<10:
i+=1
os.system('kill -10 '+pid+'')
print "vizov ", i
time.sleep(1)
Код скрипта2
#! /usr/bin/env python
# -*- coding: koi8-r -*-
import signal, sys
def func(sign, stackframe):
print "Rabotaet"
sign = 10
signal.signal(sign, func)
while 1: signal.pause()
pid можно успешно извлекать из БД или файла если скриптом2 предварительно засунуть его туда



Офлайн

#3 Окт. 22, 2009 13:22:19

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2742
Репутация: +  183  -
Профиль   Отправить e-mail  

Вопрос по сигналам

> os.system('kill -10 ‘+pid+’')

Зачем вы используйте утилиту kill для передачи сигнала? Используйте os.kill() к примеру:

os.kill(pid, signal.SIGKILL)



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#4 Окт. 26, 2009 14:52:03

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по сигналам

Rodegast
Зачем вы используйте утилиту kill для передачи сигнала?
в силу не полной осведомленности о возможностях модуля os :) благодарю



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version