Я создал код Python, следующий за этим описанием :
import os
import time
import signal
def receiveSignal(signalNumber, frame):
print('Received:', signalNumber)
return
signal.signal(signal.SIGUSR1, receiveSignal)
# output current process id
print('My PID is:', os.getpid())
# wait in an endless loop for signals
while True:
print('Waiting...')
time.sleep(3)
, который работает нормально.Но когда я пытаюсь отправить сигнал SIGUSR1
с другого терминала, например:
kill -10 55947
, код python завершается следующим образом:
My PID is: 55947
Waiting...
Waiting...
Bus error: 10
Код работает на MacOS 10.13.6, и я попытался использовать Python 2.7.12 и Python 3.6.2.В обоих случаях я получаю это Bus Error
.
Есть ли способ это исправить?Может быть, это проблема Mac?Я ожидаю, что выполняющийся код выполнит метод receiveSignal
, но в противном случае останется в цикле shile
.