История изменений
Исправление Deleted, (текущая версия) :
Если ваш демон умеет сам реагировать на SIGHUP, он поставит обработчик этого сигнала и запуск этого демона с nohup ничего не поменяет, кроме того
…что этот обработчик не получит управление. Запусти <код на баше> непосредственно и с nohup, и сравни результаты.
Это особенность обработки сигналов, специфичная для bash (и возможно других совместимых шеллов), смотри в man bash описание trap:
Signals ignored upon entry to the shell cannot be trapped, reset or listed.
Если попробовать написать то же самое на другом ЯП (например на питоне), то результат будет другой:
import os
import signal
import sys
def handler(signum, frame):
print ('Signal handler called with signal', signum)
sys.stdout.flush()
# Set the signal handler and a 5-second alarm
signal.signal(signal.SIGHUP, handler)
print('PID:', os.getpid())
sys.stdout.flush()
while True:
pass
SUGHUP отлично ловится что без nohup, что с ним.
Исходная версия Deleted, :
Если ваш демон умеет сам реагировать на SIGHUP, он поставит обработчик этого сигнала и запуск этого демона с nohup ничего не поменяет, кроме того
…что этот обработчик не получит управление. Запусти <код на баше> непосредственно и с nohup, и сравни результаты.
Это особенность обработки сигналов, специфичная для bash (и возможно других совместимых шеллов), смотри в man bash:
Signals ignored upon entry to the shell cannot be trapped, reset or listed.
Если попробовать написать то же самое на другом ЯП (например на питоне), то результат будет другой:
import os
import signal
import sys
def handler(signum, frame):
print ('Signal handler called with signal', signum)
sys.stdout.flush()
# Set the signal handler and a 5-second alarm
signal.signal(signal.SIGHUP, handler)
print('PID:', os.getpid())
sys.stdout.flush()
while True:
pass
SUGHUP отлично ловится что без nohup, что с ним.