- 主题:升级遇到问题,版面错误用户错误
原系统debian,07年2月份的代码,现系统freebsd7 amd,周三的代码
新系统直接make make install make install-home没有问题
老系统的数据倒过来之后make make install 后,原系统用户无法登陆密码输入错误...
版面列表错误
0 ◆ GROUP_1/xuanke 0 诚征版主中
0 ◆ H? 0 诚征版主中
> 0 ◆ killerscbb 0 诚征版主中
486 ◇ Movie 0 诚征版主中
0 ◆ nd 0 诚征
其中有文章的版面竟然还能用
感觉什么地方错位了。。。此问题困扰很久了 @@
--
FROM 211.99.222.*
那我试试还用原来的旧代码试试
【 在 fancyrabbit (兔兔猫★Initial F★三个月等来两封拒信) 的大作中提到: 】
: 检查代码里 struct boardheader/struct userec 有没有变化
: 如果有变化需要转换磁盘文件
--
FROM 211.99.222.*
旧代码make不过去。。。
bbs# make
make -s all-recursive
Making all in libsystem
Making all in libBBS
Making all in rzsz
Making all in src
Making all in daemon
[Compiling miscd.c]
miscd.c: In function 'miscd_dodaemon':
miscd.c:617: error: too few arguments to function 'setpgrp'
*** Error code 1
Stop in /home/bbs/kbs_bbs/daemon.
*** Error code 1
Stop in /home/bbs/kbs_bbs.
*** Error code 1
Stop in /home/bbs/kbs_bbs.
【 在 cougarwww (菲平) 的大作中提到: 】
: 那我试试还用原来的旧代码试试
--
FROM 211.99.222.*
555,一样的问题。。。
【 在 cougarwww (菲平) 的大作中提到: 】
: 那我试试还用原来的旧代码试试
--
FROM 211.99.222.*
基本没啥变化,
##new
#define USHM_SIZE (MAXACTIVE + SYSOP_EXTRA_USHM) /*modified by dong, 10->20, 1999.9.15 */
##old
#define USHM_SIZE (MAXACTIVE + 10) /*modified by dong, 10->20, 1999.9.15 */
倒是miscd.c变化很大
【 在 leonz (leonz) 的大作中提到: 】
: 检查struct.h吧
--
FROM 211.99.222.*
恩,是,
修改了这里之后是可以编译过去了
【 在 atppp (Big Mouse) 的大作中提到: 】
: 现在的代码是这样的,不过估计你的老代码也没有定义FREEBSD宏,所以把setpgrp()改成setpgid(0,0)就可以了
: #if defined(FREEBSD) || defined(MACOSX)
: setpgid(0, 0);
: ...................
--
FROM 211.99.222.*
con了
【 在 fancyrabbit (兔兔猫★Initial F★三个月等来两封拒信) 的大作中提到: 】
: 你没重新configure,能make过去才怪呢
: BSD的setpgrp和SYSV的不一样。
--
FROM 211.99.222.*
有个疑问,老机器现在使用着,正常,但是这两个文件一年多来都没变化。。。
-rw-r--r-- 1 bbs bbs 4400000 2008-05-17 11:17 .PASSWDS
-rw-r--r-- 1 bbs bbs 4400000 2007-01-20 12:05 .PASSWDS.BAK
-rw-r--r-- 1 bbs bbs 4400000 2007-01-20 16:39 .PASSWDS.NEW
-rw-r--r-- 1 bbs bbs 230400 2008-05-07 11:20 .BOARDS
-rw-r--r-- 1 bbs bbs 230400 2007-01-20 12:05 .BOARDS.BAK
bbs系统启动脚本是这样,一年多有过两三次重启服务和系统了,是不是哪里有问题?
#!/bin/bash
# Start and stop bbs services
PATH=/sbin:/bin:/usr/sbin:/usr/bin
case "$1" in
start)
echo -n "Starting BBS..."
su bbs -c "/home/telbbs/bin/miscd daemon"
su bbs -c "/home/telbbs/bin/bbslogd"
##su bbs -c "/home/telbbs/bin/innbbsd"
/home/telbbs/bin/bbsd -p 23
##/home/telbbs/bin/sshbbsd -p 22
/home/telbbs/bin/newpop3d -p 110
/etc/init.d/apache2 start
echo "done."
;;
stop)
echo -n "Stopping BBS..."
killall bbsd && killall newpop3d && killall bbslogd && /home/telbbs/bin/miscd flush && killall miscd
/etc/init.d/apache2 stop
ipcs|awk '/bbs/ {system(sprintf("ipcrm shm %s",$2));}'
echo "done."
;;
restart | force-reload)
echo -n "Restarting BBS..."
stop && start
echo "done."
;;
*)
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
【 在 atppp (Big Mouse) 的大作中提到: 】
: 现在的代码是这样的,不过估计你的老代码也没有定义FREEBSD宏,所以把setpgrp()改成setpgid(0,0)就可以了
: #if defined(FREEBSD) || defined(MACOSX)
: setpgid(0, 0);
: ...................
--
FROM 211.99.222.*
旧代码跟新代码情况差不多
全新安装的话可以正常使用
使用原来的数据的话,就是乱的
还是.BOARDS和.PASSWDS有问题看来,旧数据在freebsd上一启动bbs两个文件大小就变了,不管旧代码还是新代码。
-rw-r--r-- 1 bbs bbs 233600 May 18 08:34 .BOARDS
-rw-r--r-- 1 bbs bbs 230400 May 17 22:54 .BOARDS.BAK
-rw-r--r-- 1 bbs bbs 21248 May 17 22:54 .BOARDS.OLD
-rw-r----- 1 bbs bbs 1544 May 17 22:54 .FRIENDTOP
-rw-r----- 1 bbs bbs 154082 May 17 22:54 .IDdenys
-rw------- 1 bbs bbs 40000 May 18 08:23 .IDlists
-rw-r----- 1 bbs bbs 277426 May 17 22:54 .IPdenys
-rw-r--r-- 1 bbs bbs 4960000 May 18 08:34 .PASSWDS
-rw-r--r-- 1 bbs bbs 4400000 May 17 22:54 .PASSWDS.BAK
-rw-r--r-- 1 bbs bbs 4400000 May 17 22:54 .PASSWDS.NEW
【 在 cougarwww (菲平) 的大作中提到: 】
: 那我试试还用原来的旧代码试试
--
修改:cougarwww FROM 211.99.222.*
FROM 211.99.222.*
出了一些格式调整外没有变更。。。
而且我用老代码在freebsd上编译,也是一样的问题,使用旧数据用户和板块错误
全新安装生成的.PASSWDS和.BOARDS文件大小也跟debian上的大小不一样
谨慎怀疑是miscd.c的问题,
而且总感觉共享内存没有彻底清干净
【 在 fancyrabbit (兔兔猫★Initial F★三个月等来两封拒信) 的大作中提到: 】
: 我都说过了,对照userec和boardheader结构在新旧代码之间的变更,转换磁盘文件
: 然后停站需要彻底清掉共享内存 ..
--
FROM 211.99.222.*