Моя цель здесь - запустить программу на 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
Как заставить скрипт отправлять какое-либо сообщение на экран, используя сигналы, когда он работает в фоновом режиме.
Большое спасибо за любые ответы заранее.