樱家冢
发表于 2003-6-19 15:14:32
测试了很多次
1、如果由init启动的upimd,进程是root的,如果此时只在root下使用这个输入法,那么重起时(stop)时词组可以保存;但如果中途注销过,进入普通用户使用,那么即使又注销回到root里,stop时也不会保存词组;也就是说,如果是root身份启动的upimd,只能归root一人用,其他用户一用就无法保存词组
2、如果是普通用户user1身份启动的upimd,那么这个用户使用一阵后stop引擎没问题,能保存词组;如果这个用户使用一阵,注销,进入root,然后由root组词,使用一阵后重起或注销后重新回到user1,然后user1重起,都没问题,可以保存;但如果user1用户启动upimd,然后注销进入user2(普通用户身份),那么无论怎么组词,即使重新回到user1再重起,都无法保存词组
可能是红旗紫光的bug,没撤了,干脆就按cbnsjtu的方法,这样root和普通用户都能保存,只要不要中途注销换身份就行
我也觉得,如果在退出x或注销x时能stop引擎是最好的解决方法,不知道有哪个脚本是退出x时必然会执行的
我记得有一个脚本里面是定义了启动X和关闭X时自动运行某些命令的,可惜忘了,是不是在/etc/X11/下面的?
luochong
发表于 2003-6-19 16:09:08
测试了很多次
1、如果由init启动的upimd,进程是root的,如果此时只在root下使用这个输入法,那么重起时(stop)时词组可以保存;但如果中途注销过,进入普通用户使用,那么即使又注销回到root里,stop时也不会保存词组;也就是说,如果是root身份启动的upimd,只能归root一人用,其他用户一用就无法保存词组
2、如果是普通用户user1身份启动的upimd,那么这个用户使用一阵后stop引擎没问题,能保存词组;如果这个用户使用一阵,注销,进入root,然后由root组词,使用一阵后重起或注销后重新回到user1,然后user1重起,都没问题,可以保存;但如果user1用户启动upimd,然后注销进入user2(普通用户身份),那么无论怎么组词,即使重新回到user1再重起,都无法保存词组
可能是红旗紫光的bug,没撤了,干脆就按cbnsjtu的方法,这样root和普通用户都能保存,只要不要中途注销换身份就行
cbnsjtu的方法不好,中途注销换身份的情形还是很常见的。
只要chmod +s /usr/bin/rfinput,使得每次执行rfinput都相当于是root在执行。再用你那个脚本,保证init 5时root执行upimd -start,init 012346时用root执行upimd -stop。这样upimd和rfinput肯定都是同一用户root在执行。这样中间任意多个用户使用过这台机器,词库都能保存。
我也觉得,如果在退出x或注销x时能stop引擎是最好的解决方法,不知道有哪个脚本是退出x时必然会执行的
同意。每个用户在登陆x,先运行upimd -start,然后再运行rfinput,注销时运行upimd -stop,这也许是最好的解决办法。
llc
发表于 2003-6-19 20:38:10
我再测试一下chmod +s /usr/local/rfinput/bin/rfinput的方法
"在登陆x,先运行upimd -start,然后再运行rfinput,注销时运行upimd -stop"这个应该是最好的解决方法
luochong
发表于 2003-6-19 20:59:15
"在登陆x,先运行upimd -start,然后再运行rfinput,注销时运行upimd -stop"这个应该是最好的解决方法
如果由于某种原因,在登陆x前,upimd已经在运行(完全有可能不是现在登陆x这个用户执行的),这个解决方法就会有问题(有可能upimd -start或upimd -stop运行失败)。所以不是很健壮。
总之,我们在这里讨论最多只能讨论出针对redflag 4.0beta输入法的一个hack的解决方案。其实这一切问题应该归结于rfinput有bug(rfinput运行前没有upimd运行,会丢失用户词库;有upimd运行,不是同一用户运行的,也会丢失用户词库)。希望redflag的开发人员在正式版中能解决这个问题。
cbnsjtu
发表于 2003-6-19 21:03:12
不知道红旗会不会注意这个问题,我看红旗的论坛上没有什么反应
luochong
发表于 2003-6-19 21:08:13
不知道红旗会不会注意这个问题,我看红旗的论坛上没有什么反应
你可以向他们提交bug report(发email),也许能引起他们的注意。他们不一定会常去论坛里看。
你不必说你是在redhat 9上用的,我看这个bug跟用什么linux无关。反正redflag 4.0beta是免费提供下载试用的。
llc
发表于 2003-6-20 03:03:52
根据luochong、cbnsjtu等朋友的反馈意见,再次修正如下:
1、进行chmod +s /usr/local/rfinput/bin/rfinput,确保无论是哪个用户使用紫光,都能保存自造词组(感谢luochong!)
2、取消中软的启动脚本,改为进入x时,由/usr/local/bin/upimd脚本启动,避免由于第1点带来的用户(新建用户)权限问题
3、增加一个stopupimd脚本,并链接到/etc/rc.d/rc6.d和/etc/rc.d/rc0.d,确保重起或关机时能自动保存用户自造词
如果安装了以前的包发现仍然不能保存自造词组的,请先用rpm -e rf4magic命令卸载,注销,然后重新下载这个修正过的包,用rpm -ivh命令安装上,我相信现在修正后的这个包在词组保存方面应该是完全没问题了
已经更新下载链接:
http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=geninfo&did=936
如果在保存词组方面还有问题的朋友请再跟贴
cbnsjtu
发表于 2003-6-20 04:52:40
llc兄,果然厉害,反应真快,
我还在造退出x的方法,啊哈哈!!:)
不找了,能用就行 :mrgreen:
cbnsjtu
发表于 2003-6-20 11:02:46
能不能通过修改/etc/X11/gdm/PostSession/Default
来达到在注销的时候关闭rfinput,和引擎的目的?
这个时候提出来没有意义了 :oops::mrgreen::mrgreen:
popkev
发表于 2003-6-20 11:55:28
我用rh9+gnome,请问怎么把输入法的小窗口(进程名叫rfdock,不是输入法的状态栏)去掉?
谢谢
cbnsjtu
发表于 2003-6-20 12:38:00
我用rh9+gnome,请问怎么把输入法的小窗口(进程名叫rfdock,不是输入法的状态栏)去掉?
谢谢
/usr/local/bin/upimd
修改这个脚本就可以了
llc
发表于 2003-6-20 12:46:39
我用rh9+gnome,请问怎么把输入法的小窗口(进程名叫rfdock,不是输入法的状态栏)去掉?
谢谢
/usr/local/bin/upimd
修改这个脚本就可以了
不,不是修改/usr/local/bin/upimd,而是修改/usr/share/autostart/rfinput.deskotp,这个快捷方式里定义了启动两个程序,一个是upimd(rfinput),另一个是rfdock,就是你说的那个小窗口(本来应该dock进kde里,在gnome下无法dock,只好浮动窗口),因此,你只要修改/usr/share/autostart/rfinput.deskotp,将里面的rfdock删掉就可以了,这样只启动rfinput,在gnome下也完全可以使用
llc
发表于 2003-6-20 12:53:41
能不能通过修改/etc/X11/gdm/PostSession/Default
来达到在注销的时候关闭rfinput,和引擎的目的?
这个时候提出来没有意义了 :oops::mrgreen::mrgreen:
也想过这个,不过,这个脚本好像只在进入x时有作用,注销时没作用,只好作罢
cbnsjtu
发表于 2003-6-20 14:09:12
llc,来看看,安装了你的包之后,刚开始的时候使用没有关系,但是一旦重启之后rfinput能够启动,但是引擎不正常,无法输入汉字,还有很多的其他的不正常,我不知道是不是软件包的问题,我只有删除包,之后一切正常,不知道是不是又是只有我一个人有问题。
luochong
发表于 2003-6-20 16:01:38
根据luochong、cbnsjtu等朋友的反馈意见,再次修正如下:
1、进行chmod +s /usr/local/rfinput/bin/rfinput,确保无论是哪个用户使用紫光,都能保存自造词组(感谢luochong!)
2、取消中软的启动脚本,改为进入x时,由/usr/local/bin/upimd脚本启动,避免由于第1点带来的用户(新建用户)权限问题
3、增加一个stopupimd脚本,并链接到/etc/rc.d/rc6.d和/etc/rc.d/rc0.d,确保重起或关机时能自动保存用户自造词
为什么用了2,就可以避免1带来的权限问题?
我认为如果采用1的话,最好的方案是保留中软的那个脚本,使得init 345时用root运行upimd -start, 而init 0126时用root运行upimd -stop保留词库。
也就是说,对于llc您初次发布的那个rpm,只要修改chmod +s /usr/bin/rfinput就可以消除词库不能保存的bug(当然会带来普通用户初次使用出问题的bug)。