On Sat, Jul 14, 2007 at 04:39:33PM +0800, LI Daobing wrote: > On 7/14/07, Nickel Cobalt <[EMAIL PROTECTED]> wrote: > >在07-7-14,Ming Hua <[EMAIL PROTECTED]> 写道: > >> On Fri, Jul 13, 2007 at 03:16:38PM +0800, LI Daobing wrote: > >> > >> > 1. 解决方案 > >> > 在 $HOME/.xinitrc 中写入 > >> > xterm& > >> > exec /usr/bin/sawfish > > > >> 如果先运行 /usr/bin/sawfish &,再 exec > >> /usr/bin/xterm,有什么不妥吗? > > > >从我的实际经验来看,这么做好像跟上面没什么太大的差异。结果是一样的, > >就是多了个 xterm 而已。其他懂的朋友能不能说一下呢? > > > 进程关系不同而已, > > 第一种情况,先运行xterm,再exec sawfish,进程关系如下(-> > 标识父子关系) > bash -> startx -> xterm 变成 bash -> sawfish -> xterm > > 第二种情况 > bash-> startx -> sawfish 变成 bash -> xterm -> sawfish > 这时候你关闭xterm,bash认为startx结束了,sawfish老爸死了,投靠init进程, > 进程树(pstree)样子略有不同而已。
多谢解释。我又读了一下 "help exec" 和 exec(3) 手册页里的文档,应该是明白 这些进程之间的关系了。 但是还有一个小的地方不明白:我用 GDM,所以启动以后 x-session-manager (就 是 gnome-session) 是 gdm 的子进程,同时 Xorg 是和 x-session-manager 平行 的,也是 gdm 的子进程。如果在 tty 用 startx 启动的话,Xorg 是谁的子进程 呢? Ming 2007.07.16 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

