- 主题:能不能获得不同session的变量的值?
两个bbsd进程,能否从一个进程中获得另一个进程中变量的值?
※ 来源:·BBS 科苑星空站 kyxk.net·[FROM: jiangjun & focus]
FROM jiangjun
保存到文件
然后另一个去读?
【 在 jiangjun@kyxk.net-SPAM.no (昨天是个纪念日~) 的大作中提到: 】
: 两个bbsd进程,能否从一个进程中获得另一个进程中变量的值?
: ※ 来源:·BBS 科苑星空站 kyxk.net·[FROM: jiangjun & focus]
--
FROM 218.249.29.*
其实是这样的
每个session都有一个全局变量login_start_time
用来记录当前登陆的时间,然后退出的时候根据该时间计算本次在线时间
而时常遇到的问题是,有时id掉线了,另一个进程上来把前一个掉线的踢下去
此时,上次的在线时间就没有被计算
所以我想能否直接读取上一个进程的login_start_time,并且实际上进程号也是有的
如果保存到文件的话,1是很麻烦,2是每次都保存,比较浪费
3是退出的时候还要处理,去掉当前的session
【 在 tombcy@newsmth.net-SPAM.no (tombcy) 的大作中提到: 】
: 保存到文件
: 然后另一个去读?
--
FROM jiangjun
踢那个登录一般都是用HUP信号吧
那只不过是bbsd HUP信号的处理handler没有处理这个问题而已,改一下就是了。
首先,newmain_single.c system_init()看到SIGHUP的handler是abort_bbs()函数
然后^]一个,跳转到abort_bbs函数定义,发现果然没加在线时间,给加上!
done
【 在 jiangjun@kyxk.net-SPAM.no (昨天是个纪念日~) 的大作中提到: 】
: 其实是这样的
: 每个session都有一个全局变量login_start_time
: 用来记录当前登陆的时间,然后退出的时候根据该时间计算本次在线时间
: ...................
--
FROM 128.12.150.*
有代码么
【 在 sstiger@newsmth.net-SPAM.no (Sex like Software,better when it's free) 的大作中提到: 】
: 踢那个登录一般都是用HUP信号吧
: 那只不过是bbsd HUP信号的处理handler没有处理这个问题而已,改一下就是了。
: 首先,newmain_single.c system_init()看到SIGHUP的handler是abort_bbs()函数
: 然后^]一个,跳转到abort_bbs函数定义,发现果然没加在线时间,给加上!
: done
--
FROM jiangjun
明白你的意思了
就是说,实际上所有踢人都是由SIGHUP信号传递给abort_bbs()函数
所以在abort_bbs()函数中加上在线时间的处理就行了,这个处理的就是那个
进程对应的在线时间
另外abort_bbs()的参数可不可以不是0?
因为自杀后在线时间清零,那里也是调用abort_bbs()
用参数是否为零来判断是否记录时间
【 在 sstiger (Sex like Software,better when it's free) 的大作中提到: 】
: 踢那个登录一般都是用HUP信号吧
: 那只不过是bbsd HUP信号的处理handler没有处理这个问题而已,改一下就是了。
: 首先,newmain_single.c system_init()看到SIGHUP的handler是abort_bbs()函数
: ...................
--
FROM 159.226.37.*
但是,abort_bbs()里面
stay = time(0) - login_start_time
这里的login_start_time是否还是踢人的进程里的?还是被踢的那个进程里的?
【 在 jiangjun2000 (jiangjun) 的大作中提到: 】
: 明白你的意思了
: 就是说,实际上所有踢人都是由SIGHUP信号传递给abort_bbs()函数
: 所以在abort_bbs()函数中加上在线时间的处理就行了,这个处理的就是那个
: ...................
--
FROM 159.226.37.*
用 SIGHUP 踢人可真怪。为什么不是 SIGINT...
【 在 jiangjun2000@newsmth.net-SPAM.no (jiangjun) 的大作中提到: 】
: 明白你的意思了
: 就是说,实际上所有踢人都是由SIGHUP信号传递给abort_bbs()函数
: 所以在abort_bbs()函数中加上在线时间的处理就行了,这个处理的就是那个
: 进程对应的在线时间
: 另外abort_bbs()的参数可不可以不是0?
: 因为自杀后在线时间清零,那里也是调用abort_bbs()
: 用参数是否为零来判断是否记录时间
: 【 在 sstiger (Sex like Software,better when it's free) 的大作中提到: 】
: : 踢那个登录一般都是用HUP信号吧
: : 那只不过是bbsd HUP信号的处理handler没有处理这个问题而已,改一下就是了。
: .................(以下省略)
--
FROM 59.66.199.89