当前位置: 技术问答>linux和unix
有关服务程序的问题,急急急
来源: 互联网 发布时间:2015-06-11
本文导语: 服务器程序中,通过setsockopt设定接收和发送超时以及端口重用后,如何实现超时后重启服务。 | 创建父子两个进程: 子进程为工作进程,超时时,子进程直接调用exit(0)退出。 而父进程调waitp...
服务器程序中,通过setsockopt设定接收和发送超时以及端口重用后,如何实现超时后重启服务。
|
创建父子两个进程:
子进程为工作进程,超时时,子进程直接调用exit(0)退出。
而父进程调waitpid等子进程,如果子进程退出,重起一个子进程。
子进程为工作进程,超时时,子进程直接调用exit(0)退出。
而父进程调waitpid等子进程,如果子进程退出,重起一个子进程。
|
再次不好意思,要重启进程还真没办法,我以为只是要控制连接而已。
不过也把这个贴出来给大家看看吧。
所谓状态表项的超时值是指每个表项存在的最大时间,这些超时值的大小在/usr/src/linux/net/ipv4/netfilter/ip_conntrack_proto_tcp.c文件中设置。以下是相关的代码:
static unsigned long tcp_timeouts[]
= { 30 MINS, /* TCP_CONNTRACK_NONE, */
5 DAYS, /* TCP_CONNTRACK_ESTABLISHED, */
2 MINS, /* TCP_CONNTRACK_SYN_SENT, */
60 SECS, /* TCP_CONNTRACK_SYN_RECV, */
2 MINS, /* TCP_CONNTRACK_FIN_WAIT, */
2 MINS, /* TCP_CONNTRACK_TIME_WAIT, */
10 SECS, /* TCP_CONNTRACK_CLOSE, */
60 SECS, /* TCP_CONNTRACK_CLOSE_WAIT, */
30 SECS, /* TCP_CONNTRACK_LAST_ACK, */
2 MINS, /* TCP_CONNTRACK_LISTEN, */
};
不过也把这个贴出来给大家看看吧。
所谓状态表项的超时值是指每个表项存在的最大时间,这些超时值的大小在/usr/src/linux/net/ipv4/netfilter/ip_conntrack_proto_tcp.c文件中设置。以下是相关的代码:
static unsigned long tcp_timeouts[]
= { 30 MINS, /* TCP_CONNTRACK_NONE, */
5 DAYS, /* TCP_CONNTRACK_ESTABLISHED, */
2 MINS, /* TCP_CONNTRACK_SYN_SENT, */
60 SECS, /* TCP_CONNTRACK_SYN_RECV, */
2 MINS, /* TCP_CONNTRACK_FIN_WAIT, */
2 MINS, /* TCP_CONNTRACK_TIME_WAIT, */
10 SECS, /* TCP_CONNTRACK_CLOSE, */
60 SECS, /* TCP_CONNTRACK_CLOSE_WAIT, */
30 SECS, /* TCP_CONNTRACK_LAST_ACK, */
2 MINS, /* TCP_CONNTRACK_LISTEN, */
};