Как напечатать что-то на экран, используя обработчик сигнала в Python - PullRequest
0 голосов
/ 03 сентября 2018

Моя цель здесь - запустить программу на python в фоновом режиме, используя команду nohup, а затем с помощью установленных обработчиков сигналов заставить ее напечатать что-то на экран, как только я передам ему сигнал.

Ниже приведен мой код для того же:

from signal import *
import time

def usr1_signal_handler(signum, frame):
    print "Signal handler called with signal number {}".format(str(signum))

signal(SIGUSR1, usr1_signal_handler)

for i in range(100):
    print i
    time.sleep(3)

Теперь проблема в том, что когда я запускаю его обычным способом и когда я посылаю ему сигнал USR1, используя: kill -USR1, он печатает сообщение на экране, как показано ниже:

1
2
3
4
5
6
7
8
9
Signal handler called with signal number 10

Но когда я запускаю его с помощью команды nohup, а затем запускаю в фоновом режиме, при отправке сигнала, как в прошлый раз, ничего не печатается:

$ nohup python test.py &
[1] 2291
$ nohup: ignoring input and appending output to ‘nohup.out’

$ kill -USR1 2291

Как заставить скрипт отправлять какое-либо сообщение на экран, используя сигналы, когда он работает в фоновом режиме.

Большое спасибо за любые ответы заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...