DWM 不会注销我,而是直接关闭

DWM 不会注销我,而是直接关闭

一段时间以来,我的 DWM 运行良好(我不记得在此之前对 xinitrc 之外做过任何更改),现在当我按下键绑定(killclient)时,它不再将我注销。所谓注销,只是意味着它将我送回 tty1 shell,然后我可以从那里输入 startx 以使用我的 xinitrc 重新启动 xorg 服务器。

现在它只是关闭 DWM,所以此时我要么通过按下电源按钮手动重新启动,要么如果我打开了 ST,我只需在 ST 中输入 reboot。

答案1

你“注销”不是当你的窗口管理器退出时,而是当你的 xinitrc 脚本结束时。在简单情况下,脚本在该脚本调用的最后一个非后台(非 &)命令退出时结束 - 在您的脚本中是不再是 dwm;您实际上已经拥有了slstatus最后等待的命令,但由于某种原因,您的dwm命令正在“后台”分离运行。&

重新排序为:

slstatus &
dwm

exec dwm可选)


通常,当你在exec dwm脚本的最后,dwm取代脚本,因此“当 xinitrc 退出时”现在变为“当 dwm 退出时”。这在没有“exec”的情况下仍然有效,因为脚本仍然等待退出调用的命令('exec'在这里实际上只有最小的优势)。

但是,在后台运行某些程序可以&阻止这种情况发生 - 你专门要求脚本不是等待“dwm”退出,然后继续执行下一个命令(slstatus)。

&操作符还使 无效exec(因为“在后台”意味着产生一个单独的进程,这与“exec”所做的完全相反),所以exec dwm &- 相当于dwm &- 不再定义脚本的生命周期。

相关内容