В моем коде C ++ я обрабатываю сигналы, и все работает отлично. Однако, когда я запускаю его nohup стандартным способом, kill не работает, я должен убить его с -9.
Запуск / proc / PID / status перед уничтожением — это S (Sleeping), после kill я получил:
State: T (tracing stop)
3 Tgid: 21280
4 Pid: 21280
5 PPid: 1
6 TracerPid: 1
25 SigPnd: 0000000000000000
26 ShdPnd: 0000000000004000
27 SigBlk: 00007f06782a1000
28 SigIgn: 0000000000000001
29 SigCgt: 0000000180004006
Мне кажется, что проблема заключается в отслеживании другим процессом (состояние изменилось), потому что соответствующие сигналы включены. Отслеживается init. Я не знаю почему, потому что другие процессы не ведут себя таким образом, я имею в виду: они не отслеживаются и уничтожаются командой kill.
Спасибо за любые предложения.
Задача ещё не решена.