作者Pecker (Pecker)
看板PttCurrent
标题[心得] shmctl.c
时间Tue Mar 2 04:17:25 2004
谢谢大家指导
我把 Makefile 中的 innd 拿掉 然後就当作没这回事了
这样快乐多了 ^^
这篇文章是来写 shmctl 的.
因为我发现 有很多使用者 可能在不知名的原因断线之後, 还会卡在站上
卡很久 怎麽样都掉不下去. 用站长踢人也无法.
所以... 研究之後 发现是 shmctl 这只程式 要用来踢人.
可是 用了各种参数组合 还是踢不掉 只好来看看程式码怎麽写
研究後发现
其中, 第 57 行的 lowerbound 指的是 BBS 的最少上线人数
原来设定的是 100, 我想 这是 ptt 这种大站才这样设, 所以我改成了 10
另外 在 126 行的 kill 指的当然就是把使用者踢出站外罗.
可是 我发现 有的时候 如果是程式问题 使用者断线 那麽 就算用
kill(SHM->uinfo[which].pid, SIGHUP);
这样的 kill , 使用者也下不去
所以我只好加上一个判断, 当我每个小时 用 crontab 去呼叫 shmctl 的时候
我给他 shmctl utmpfix -t 3600 这个参数
而当他遇到 timeout 是 3600 的时候
就会狠狠的把使用者 用
kill(SHM->uinfo[which].pid, SIGKILL);
的指令踢下去. 这样 站上就不会很多屍体卡在那里很讨厌了...
一点心得 ..
--
不过 似乎应该去研究, 怎麽样让使用者不会无故断线才对 :P
--
那包围住自己的心跳与体热,一点一点地渗透进来,
总是在海潮中听到,从体内深处传来一种模糊、不成言语的声息
然後 天空从很深很深的紫,转变成一片纯粹的蓝
而映着天空那片纯蓝的海,让我第一次感到,海-竟是那样的美
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.73.163.49