查看“ps ax”的输出,login 如何到达 startx?见下文。
init 启动 /bin/login login 启动 startx -- 如何启动?执行什么文件才能进入 startx?
1297 1 Ss+ tty1 00:00:00 /bin/login -f
1495 1297 S+ tty1 00:00:00 /bin/sh /usr/bin/startx
1519 1495 S+ tty1 00:00:00 xinit /home/./.xinitrc -- /etc/X11/xinit/x
1520 1519 Sl tty1 00:01:38 /usr/lib/xorg/Xorg ...
1526 1519 S tty1 00:00:00 /usr/bin/xterm ...
1531 1526 S tty1 00:00:00 twm
汤姆·迪恩
答案1
查看 login.c,在 fork 更改为用户级别权限后,login exec 的用户 shell 来自/etc/passwd
。在我的例子中,这是 bash。在我的底部.bash_profile
,我有
if [ -z "$DISPLAY" ] && [ -n "$XDG_VTNR" ] && [ "$XDG_VTNR" -eq 1 ]; then
exec startx
fi