使用 linux 桌面系统(lightdm 登录管理器、openbox、lxde 或 unity 桌面),如何通过命令行(甚至通过 SSH)进入和退出会话(例如从 lightdm 登录并从桌面会话注销)?
例如,我喜欢从 LXDE 会话注销,然后在没有通过 SSH 连接鼠标或键盘的机器上登录 Unity 会话。
答案1
您正在寻找的是远程桌面软件[数据]。
在没有键盘的机器上,您将运行服务器,在另一台机器上运行客户端。
有许多[1],[2]可以随时间而变化。一个好的开始可以是 nomachine 的免费版本[1]
要退出简单会话,您必须找到相关命令并通过 ssh 连接调用它,例如在 gnome 中:
gnome-session-quit --logout --no-prompt
sudo service lightdm restart
请记住,您随时可以使用、 或stop
和 之后的命令重新启动登录管理器start
,但这将关闭整个会话lightdm
(而不仅仅是当前会话)。
要从远程运行图形应用程序,只需连接ssx -X
以启用 X11 转发,或者-Y
,然后运行命令即可。
答案2
经过几天尝试所有的解决方案后,唯一对我有用的是:
killall Xorg
答案3
如果使用 systemd,您可以使用loginctl
systemd 登录管理器通过 SSH 从 CLI 注销任何桌面会话。
在您的示例中,使用loginctl list-sessions
来识别 LXDE 会话的 ID,然后loginctl terminate-session ID
。
但我认为通过 CLI SSH 启动 Unity(或其他)会话的具体细节取决于桌面管理器,例如 lightdm(可能根据配置自动启动欢迎程序)。其他人可以回答这个问题。或者您可以使用正确的环境变量启动特定于会话的命令,例如X=:0 openbox-session
,但这可能缺乏会话管理。