LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1013|回复: 17

【求助】启动fvwm时出错?

[复制链接]
发表于 2011-1-23 15:22:26 | 显示全部楼层 |阅读模式
今天更新了系统,重新安装xorg-server后,用startx启动X能正常进入黑白界面,但启动fvwm时出错,显示代码:
xterm:bad command line option "xterm",要求输入xterm -help查看 full description字段,查不出什么有用的信息。
新建了~/.xserverrc 并输入X :1后,用xinit --:1后进入的屏幕无任何显示,按ctrl+alt+backspace也不能返回。只能重新启动计算机。
 楼主| 发表于 2011-1-24 11:56:13 | 显示全部楼层
呵呵,怎么大家都只是看看,没有过来帮忙呢?

是否因为我的问题太容易处理还是问得不够清晰!?
回复 支持 反对

使用道具 举报

发表于 2011-1-24 18:41:33 | 显示全部楼层
cat .xinitrc
贴上来看看
不知道你的fvwm是怎么运行的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-1-24 21:47:05 | 显示全部楼层
我没有 .xinitrc,
cat: xinitrc:  No Such file or directory.
直接用startx fvwm启动可否?

直接启动startx可以正常进入简单的twm。startx fvwm为何不能进入最简陋的fvwm界面呢?
回复 支持 反对

使用道具 举报

发表于 2011-1-24 22:16:35 | 显示全部楼层
Post by hayse2000;2126606
我没有 .xinitrc,
cat: xinitrc:  No Such file or directory.
直接用startx fvwm启动可否?

直接启动startx可以正常进入简单的twm。startx fvwm为何不能进入最简陋的fvwm界面呢?


没有.xinitrc的情况下要用:
  1. startx /usr/bin/fvwm2
复制代码

(似乎是根据xinit的规则,client名字必须由"/"或"."开头,因此要用绝对路径。)
还是.xinitrc更好些,可以设置一些X的环境变量。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-1-24 23:17:53 | 显示全部楼层
Post by RichardGv;2126610
没有.xinitrc的情况下要用:
  1. startx /usr/bin/fvwm2
复制代码

(似乎是根据xinit的规则,client名字必须由"/"或"."开头,因此要用绝对路径。)
还是.xinitrc更好些,可以设置一些X的环境变量。

感谢楼上的,用绝对路径startx /usr/bin/fvwm2终于可以进入了。
但写上.xinitrc后又不对了,

  1. export LC_CTYPE=zh_CN.UTF-8
  2. export XMODIFIERS="@im=fcitx"
  3. export XIM=fcitx
  4. export XIM_PROGRAM=fcitx
  5. exec fcitx &

  6. exec fvwm2
复制代码


难道表达有错吗?
回复 支持 反对

使用道具 举报

发表于 2011-1-25 10:53:01 | 显示全部楼层
不要写exec fcitx &。
改成fcitx &试试(就是去掉前面的exec)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-1-25 12:09:58 | 显示全部楼层
Post by twando;2126656
不要写exec fcitx &。
改成fcitx &试试(就是去掉前面的exec)


这个就算出错也没关系,可以先注释掉。

但是后面的fvwm2也不用exec吗?
不应该吧?!
回复 支持 反对

使用道具 举报

发表于 2011-1-25 12:18:00 | 显示全部楼层
Post by hayse2000;2126662
这个就算出错也没关系,可以先注释掉。

但是后面的fvwm2也不用exec吗?
不应该吧?!


后面的exec还是要的。

exec的意思是,执行后面接的那段命令,并等待那个命令执行结束。

所以exec fvwm2的话,就会启动窗口管理器fvwm,然后等待
fvwm结束,知道这个时候才会结束.xinitrc脚本的调用。

所以不用exec的话,就会startx之后开一下x然后马上又返回控制台。

因为这样所以不能在.xinitrc里用两个exec
回复 支持 反对

使用道具 举报

发表于 2011-1-25 18:34:01 | 显示全部楼层
Post by twando;2126663

所以不用exec的话,就会startx之后开一下x然后马上又返回控制台。

因为这样所以不能在.xinitrc里用两个exec


其实.xinitrc最后一行不用"exec fvwm2"而用"fvwm2"也可以,但是会保留一个没有用处的"sh ~/.xinitrc"进程。相比还是"exec fvwm2"可以节省2MB左右的内存。
exec的作用,按照man page的解释,是它参数给出的程序代替shell进程。如果用"fvwm2"启动,startx会产生一个"sh ~/.xinitrc",sh再启动一个fvwm2进程,在系统中保留一个"fvwm2"和一个"sh"进程;而用"exec fvwm2"的结果是,sh在启动fvwm2进程时会关闭sh自身,从而在系统中只保留一个"fvwm2"进程。
而由于exec会直接关闭shell进程,任何"exec"行之后的命令都不会被执行!这就是不能使用"exec fcitx"的原因。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表