0
A
回答
3
注册搭上信号:
void termination_handler(int sig)
{
/* do something */
}
struct sigaction handler;
handler.sa_handler = termination_handler;
sigemptyset (&handler.sa_mask);
handler.sa_flags = SA_RESTART;
sigaction(SIGTERM, &handler, NULL);
这里是一个很好example page。
你可以使用旧的风格,但不建议:
void termination_handler()
{
/* do something */
}
signal(SIGTERM, termination_handler);
相关问题
- 1. 如何使用C#发送SNMP陷阱?
- 2. 如何从“C”发送net-snmp陷阱
- 3. 如何使用PowerShell发送SNMP陷阱?
- 4. 从Java应用程序发送陷阱
- 5. C pthreads和信号发送
- 6. 在Java中发送陷阱v2
- 7. 定义MIB并发送SNMP陷阱.net
- 8. Datastax Opscenter 6.0不发送SNMP陷阱
- 9. 如何发送SNMP陷阱到不同的IP
- 10. 如何以非root用户的身份发送snmp陷阱?
- 11. 如何发送信号?
- 12. pthread_kill()不发送信号到
- 13. 发送信号到进程
- 14. 从c#发送midi信号到ableton
- 15. 如何从javascript发送信号到qml
- 16. 如何将信号发送到PCI卡?
- 17. 发送SNMP陷阱到Nagios的特定主机
- 18. 不发送所有SNMP陷阱的应用程序
- 19. 如何发送DTMF信号的Symbian S60
- 20. 如何用C发送彩信#
- 21. 如何在JNI中将事件/信号从C发送到Java
- 22. android短信发送到收到号码
- 23. 插入发送彩信到发送框
- 24. C获取信号发送值
- 25. 如何向Testcontainers发送信号?
- 26. 如何向线程发送无信号?
- 27. 如何从代表发送信号
- 28. 如何从nodejs发送POSIX信号
- 29. 如何从python程序发送信号?
- 30. 发送信号给线程
权。这工作正常,我使用“信号”。在事件中,我向特定的PID发送kill命令,因为该过程如何确定信号是按照我的方式发送的? – JAM 2011-05-05 03:46:30
你几乎肯定希望'handler.sa_flags = SA_RESTART;'。非重新启动信号会严重破坏不期望得到'EINTR'且不处理它的代码。 – 2011-05-05 04:04:57
@R ..好点。修改为反映 – pickypg 2011-05-05 04:20:02