您尚未登录。

#1 2019-08-31 20:41:21

linux40
会员
注册时间: 2015-11-30
帖子: 45

有没有什么小的gtk程序是通过dbus弹出注销菜单的?

这个链接有相应的命令。而且最好不要依赖 systemd (我还想在*bsd上用),而是能自动判断链接里“login1”的值应该是什么值。其实我没搞懂这个“login1”应该怎么去判断。

同时,这个链接还有登出命令,登出命令还要判断是不是当前的会话。

当然桌面环境的 session manager 是可以的,不过这就不算小程序了。

离线

#2 2019-08-31 20:50:17

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 5,155
个人网站

Re: 有没有什么小的gtk程序是通过dbus弹出注销菜单的?

org.freedesktop.Hal => hal
org.freedesktop.login1 => systemd
org.gnome.SessionManager => gnome-session
org.kde.KSMServerInterface => kde

没有统一的办法。

离线

#3 2019-09-01 09:09:09

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 718

Re: 有没有什么小的gtk程序是通过dbus弹出注销菜单的?

你没有systemd-logind 哪儿来的登录会话?登录会话这个概念就依赖特定的登录管理器,只能硬编码,systemd一种,ConsoleKit一种,xx管理器一种,yy管理器另一种。dropbear的会话就是它自己管理的,不会产生logind会话session。

登录管理器本来就是OS的一部分,一个OS仅此一份,你这个要求无异于要求一个程序同时运行于Windows和VxWorks,那就判断当前操作系统然后硬编码呗,你以为跨平台还真的是一份代码到处运行啊?

最近编辑记录 xtricman (2019-09-01 09:12:07)

离线

#4 2019-09-02 14:34:27

linux40
会员
注册时间: 2015-11-30
帖子: 45

Re: 有没有什么小的gtk程序是通过dbus弹出注销菜单的?

xtricman 说:

你没有systemd-logind 哪儿来的登录会话?

这个问题你后面不就自己回答了?

xtricman 说:

登录会话这个概念就依赖特定的登录管理器,只能硬编码,systemd一种,ConsoleKit一种,xx管理器一种,yy管理器另一种。dropbear的会话就是它自己管理的,不会产生logind会话session。

xtricman 说:

登录管理器本来就是OS的一部分

和着X session才是会话,普通的用户登录不是?

xtricman 说:

一个OS仅此一份,你这个要求无异于要求一个程序同时运行于Windows和VxWorks

我同时开两个X session,一个用logind,一个ConsoleKit怎么不行?

xtricman 说:

你以为跨平台还真的是一份代码到处运行啊

怎么又扯到跨平台上面去了?除了*bsd没有systemd,还有什么差异在这里是需要考虑的?

离线

#5 2019-09-02 22:30:03

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 718

Re: 有没有什么小的gtk程序是通过dbus弹出注销菜单的?

Session不是一个良定义的概念,含义取决于上下文,logind session跟ConsoleKit session不是一个概念 跟 X session也不是一个概念。尤其是你登录了tty再startx会有很明显的效果,logind session不是X session. 同理也不能不依赖session Manager 定义退出session。

没有systemd也不知道有什么

离线

#6 2019-09-02 22:33:41

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 718

Re: 有没有什么小的gtk程序是通过dbus弹出注销菜单的?

你对小程序的定义是啥?大多数session Manager支持dbus call. 那dbus-send 可能算大程序?

离线

#7 2019-09-03 15:21:33

linux40
会员
注册时间: 2015-11-30
帖子: 45

Re: 有没有什么小的gtk程序是通过dbus弹出注销菜单的?

xtricman 说:

你对小程序的定义是啥?大多数session Manager支持dbus call. 那dbus-send 可能算大程序?

其实我之前的疑问类似于能不能查询我该向哪个object发送消息。当然之后两个回复都说没有那就暂时没有吧。

如果能查的话,那直接最简单的只需要弹出一个菜单(gtk)让我选要关机、重启还是别的就行。我用了lxpanel,lxpanel有个注销命令,我就把注销命令设成它。

不能查的话,支持特定的也可以,比如如果知道用的是logind的话,当然知道object是哪个。

离线

#8 2019-09-03 16:06:21

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 718

Re: 有没有什么小的gtk程序是通过dbus弹出注销菜单的?

的确是不能,每个session Manager都有自己独特的interface让你注销会话,故而你即使反射查到了它所有的method也没用,不读文档或源码鬼知道这个method到底是用来干嘛的。

或者说得更简单,类似于,一个没文档的库,鬼才知道某个函数是啥功能。

这不是一个内核态的概念,而*nix类系统大多数用户态有很大的弹性,所以没有办法确定如何做一个依赖于具体用户态组织的功能

离线

页脚