Re: mrtg怎麼抓bbs的上線人數?
【 在 shane123.bbs@ptt.cc (家產有八十七億) 的大作中提到: 】
: 是不是應該抓目前有幾個mbbsd process??
: 該怎麼做呢?? thanks~
這樣其實不是很精準
因為會有的人開到進站畫面 但還沒login
process 已經產生了 , 但是他還不算是已經登入的user ...
精確的作法應該是掃一遍 shared memory ...或抓 shm 中存目前人數的值 ...
這部份各 bbs 的作法就不太一樣了 ,
以 PTT 為例 , 程式大概類似這樣
(我用的是很早期的 PTT 版本, 現在的版本不知道需不需要修改就是了 ... )
===========================================================================
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <machine/param.h>
#include "config.h"
#include "struct.h"
struct utmpfile_t *utmpshm;
void attach_err()
{
perror("attach shared memory error!!\n");
}
void *attach_shm( int key, int shmsize )
{
void *shmptr;
int shmid;
shmid = shmget( key, shmsize, 0 );
if( shmid < 0 ) {
attach_err();
exit( -1 );
}
else {
shmptr = (void *) shmat( shmid, NULL, 0 );
if( shmptr == (void *)-1 ) {
attach_err();
exit( -1 );
}
}
return shmptr;
}
int main()
{
utmpshm = attach_shm( UTMPSHM_KEY, sizeof( *utmpshm ) );
printf("%d\n", utmpshm->number );
return 0;
}
===========================================================================
--
※ 來源:‧大度山之戀 bbs.thu.edu.tw‧[FROM: 220-134-60-125.]
討論串 (同標題文章)
FreeBSD 近期熱門文章
PTT數位生活區 即時熱門文章