在我的c ++代码中,我处理信号,一切正常。但是,当我以标准方式通过nohup启动它时,杀死不工作,我必须用-9杀死它。 在杀死状态之前启动/ proc / PID /状态是S(睡眠),在杀死之后我收到了:
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命令杀死。
感谢您提出任何建议。