求解GTK库的关机问题

软件和网站开发以及相关技术探讨
头像
lovekid
帖子: 555
注册时间: 2007-03-05 11:43
联系:

求解GTK库的关机问题

#1

帖子 lovekid » 2009-11-07 20:16

大家好,我以前曾提过一个类似的问题,不过没有很好的答案,今天再问一次,这么长时间过去了,应该有解了~~~

问题是这样的,使用GTK库的程序怎样才能通过编程的方式关闭计算机?

咱们的ubuntu默认使用gnome,不用提权就能关机、重启。但是在shell中要想关机、重启则必须提权,使用root权限。在windows系统中,有个ExitWindowsEx函数,这个函数虽然需要提权,可也不需要进程以管理员身份运行。

但ubuntu下,普通用户死活不让关机,可桌面版操作系统又不是服务器,怎能不让普通用户关机?但咱们以普通用户登录后,通过gnome的关机菜单又可以关机,我想知道gnome是怎么关机的,到底该调用什么函数才能关机?就算是办不到,谁能解释一下gnome桌面系统的关机机制?

希望有人能给我解答一下,不要让我去看什么技术文档,谢谢了,不懂的帮我顶也算帮我了,再次感谢 :em70 :em70 :em70
头像
slax
帖子: 1099
注册时间: 2009-08-17 3:52

Re: 求解GTK库的关机问题

#2

帖子 slax » 2009-11-07 20:43

危险,所以不告诉你。
We believe that the internet should be public, open and accessible.
软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。
iceplayer! linux音乐新体验~ 最新版本4.0.5-20110520已更新!viewtopic.php?f=137&t=252461
想要iceplayer 测试版麼?加入QQ群80071264吧,在code.google也可找到
http://www.iceplayer.org/
http://jasy.ice.blog.163.com/
头像
lovekid
帖子: 555
注册时间: 2007-03-05 11:43
联系:

Re: 求解GTK库的关机问题

#3

帖子 lovekid » 2009-11-07 20:54

我拿来写闹钟程序的, :em03

以后下载软件的完成后关机也得用啊 :em06


告诉我吧 :em01
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: 求解GTK库的关机问题

#4

帖子 delectate » 2009-11-07 20:58

gdm就是以root权限运行的

所以可以关机

ps:个人理解……gdm对于一般用户的审查,是基于自身的。也就是说你突破gdm审查机制,你就可以达到root权限
头像
lovekid
帖子: 555
注册时间: 2007-03-05 11:43
联系:

Re: 求解GTK库的关机问题

#5

帖子 lovekid » 2009-11-07 21:30

能说的再详细些吗? ExitWindowsEx在NT下是要审查的,不过一般都过,gdm怎么个审查法?
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: 求解GTK库的关机问题

#6

帖子 delectate » 2009-11-07 21:37

lovekid 写了:能说的再详细些吗? ExitWindowsEx在NT下是要审查的,不过一般都过,gdm怎么个审查法?
我在win下编程水平也就停留在吊api,llinux下嘛,还是printf :em06

不过读代码还是会一点的 :em03
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 求解GTK库的关机问题

#7

帖子 lilydjwg » 2009-11-08 0:21

把你的程序的所有者改成root,然后设置用户ID。

代码: 全选

chmod 4755 yourfile
这样程序就具有root权限了(小心!)

http://www.diybl.com/course/6_system/li ... 59757.html
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: 求解GTK库的关机问题

#8

帖子 wangdu2002 » 2009-11-08 0:23

进来学习下。。。 :em03
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
lovekid
帖子: 555
注册时间: 2007-03-05 11:43
联系:

Re: 求解GTK库的关机问题

#9

帖子 lovekid » 2009-11-08 9:39

lilydjwg 写了:把你的程序的所有者改成root,然后设置用户ID。

代码: 全选

chmod 4755 yourfile
这样程序就具有root权限了(小心!)

http://www.diybl.com/course/6_system/li ... 59757.html
这样的话安装程序不就麻烦了?别人要用都得设置?打包技术还不会……难道就没有普通用户能调用的关机函数吗?gnome明明能关机……

难道gnome也是这么办的 :em20
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 求解GTK库的关机问题

#10

帖子 lilydjwg » 2009-11-08 13:45

lovekid 写了:
lilydjwg 写了:把你的程序的所有者改成root,然后设置用户ID。
....
这样的话安装程序不就麻烦了?别人要用都得设置?打包技术还不会……难道就没有普通用户能调用的关机函数吗?gnome明明能关机……
难道gnome也是这么办的 :em20
gnome应该是用root的权限关机的,那有个gdm进程是root的
头像
windwiny
帖子: 2254
注册时间: 2007-03-13 17:26

Re: 求解GTK库的关机问题

#11

帖子 windwiny » 2009-11-08 15:10

gnome策略里有关机的权限设置吧

某设置了权限的用户发关机dbus 消息给daemon
头像
soething
帖子: 746
注册时间: 2008-07-23 19:06

Re: 求解GTK库的关机问题

#12

帖子 soething » 2009-11-08 15:15

通过dbus。

可以参见下ubuntu的那个面板小工具。
头像
lovekid
帖子: 555
注册时间: 2007-03-05 11:43
联系:

Re: 求解GTK库的关机问题

#13

帖子 lovekid » 2009-11-10 20:56

soething 写了:通过dbus。

可以参见下ubuntu的那个面板小工具。
这个小面板的全称是什么? :em06

能否给点示例代码
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: 求解GTK库的关机问题

#14

帖子 cnkilior » 2009-11-10 22:28

你可以看看gshutdown的代码/
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: 求解GTK库的关机问题

#15

帖子 delectate » 2009-11-11 18:57

晕,某次很2

kill 掉了dbus-daemon
回复