标签: consolekit

什么是 ConsoleKit 和 PolicyKit?它们是如何工作的?

我看到最近的 GNU/Linux 正在使用 ConsoleKit 和 PolicyKit。它们是为了什么?它们是如何工作的?

最好的答案应该解释每个人试图解决什么样的问题,以及他们如何设法解决它。

我是 GNU/Linux 的长期用户,从那时起这些东西还不存在。我一直在使用 Slackware 和最近的 Gentoo。我是一名高级用户/管理员/开发人员,所以答案可以(并且应该!)尽可能详细和准确。我想了解这些东西是如何工作的,这样我就可以以最好的方式使用它们(作为用户或开发人员)。

linux polkit consolekit

45
推荐指数
1
解决办法
2万
查看次数

控制台套件守护进程占用 CPU 和 RAM

我们的系统有点迟钝。top报告控制台套件守护进程占用 18-30% 的 CPU 和大约 50% 的内存。只有两个用户登录,一个在 X 上,一个通过 ssh。

任何想法如何解决这个问题?

运行 Debian。uname报告:

Linux Bulls5 2.6.32-5-686 #1 SMP Sun Sep 23 09:49:36 UTC 2012 i686 GNU/Linux

前几行top

 9456 root      20   0 2006m 1.8g 2020 S   19 50.2   1788:50 console-kit-dae  
 1501 messageb  20   0  425m 397m  796 S    0 10.6 230:20.64 dbus-daemon  
 3799 tomcat6   20   0  932m 450m 7208 S    0 12.0 106:36.35 java 
24383 postgres  20   0 48312 7956 5640 S    0  0.2   0:00.44 …
Run Code Online (Sandbox Code Playgroud)

debian troubleshooting consolekit

10
推荐指数
1
解决办法
2万
查看次数

如何在没有 sysvinit 的情况下使用 consolekit 关闭(但使用 systemd)

我在 Arch Linux 机器上安装了 systemd(并且没有安装 sysvinit)。但是,我无法使用 consolekit(dbus 接口)关闭/重新启动。# systemctl {shutdown,reboot}工作得很好,所以我猜是因为 consolekit 不知道如何联系pid 1进程。

shutdown systemd sysvinit consolekit

8
推荐指数
1
解决办法
1489
查看次数

如何在 ConsoleKit 中激活当前会话?

我在 USB 驱动器上有一个实时的 Debian Squeeze 系统,其中包含我用来对另一个驱动器进行映像的脚本。此脚本用于udisks按标签安装驱动器,但它不适用于串行控制台。原因是与串行控制台关联的会话似乎不是“活动的”,这意味着udisks失败:

user@my-live-usb:~$ udisks --mount /dev/disk/by-label/image-data --mount-options ro
Mount failed: Not Authorized
Run Code Online (Sandbox Code Playgroud)

更改allow_any输入/usr/share/polkit-1/actions/org.freedesktop.udisks.policy没有帮助,所以我想知道如何告诉 ConsoleKit 串行控制台是“活动的”。尝试通过 DBUS 接口执行此操作失败:

user@my-live-usb:~$ dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Session7 org.freedesktop.ConsoleKit.Session.Activate
Error org.freedesktop.DBus.GLib.UnmappedError.CkSeatError.Code0: Unable to activate session
Run Code Online (Sandbox Code Playgroud)

Session7 是在 /dev/ttyS0 上列出的那个。

那么如何让 ConsoleKit 将串行控制台识别为活动会话呢?

(就我而言,udisks 版本是 1.0.1+git20100614-3,consolekit 是 0.4.1-4。)

值得一提的是,Debian 实时系统会自动将实时用户登录到所有 6 个视频控制台和串行控制台上。

consolekit udisks

7
推荐指数
1
解决办法
4601
查看次数

带有 consolekit 的系统和没有它的系统有什么区别?

首先,我使用带有独立 Openbox 的 Debian 测试系统。我没有 systemd,只有 sysvinit,而且我当然不会使用 systemd。

昨天我的 Debian 机器开始返回如下消息:

Jun 14 18:08:10 morfikownia login[4722]: pam_unix(login:session): session opened for user morfik by LOGIN(uid=0)
Jun 14 18:08:10 morfikownia dbus[4391]: [system] Activating service name='org.freedesktop.ConsoleKit' (using servicehelper)
Jun 14 18:08:10 morfikownia dbus[4391]: [system] Activated service 'org.freedesktop.ConsoleKit' failed: Failed to execute program org.freedesktop.ConsoleKit: Success
...
Jun 14 18:08:19 morfikownia pulseaudio[4855]: [pulseaudio] sink.c: Default and alternate sample rates are the same.
Jun 14 18:08:19 morfikownia pulseaudio[4855]: [pulseaudio] source.c: Default and alternate sample rates are …
Run Code Online (Sandbox Code Playgroud)

login openbox debian consolekit

7
推荐指数
1
解决办法
5482
查看次数

如果我在不关闭应用程序的情况下关机会造成伤害吗?

如果我在不关闭所有程序的情况下关闭我的机器会伤害吗?我通常手动关闭所有这些,但从其他人那里听说这真的不再需要了(即 Linux 会在关闭计算机之前正确关闭程序)。我通常在关闭电脑时运行 Thunderbird、VIM(没有打开未保存的文件)和浏览器窗口等应用程序。而且我会确保在关闭时不会向 USB 写入任何内容。

运行 Arch Linux 并使用 ConsoleKit 关闭

shutdown arch-linux consolekit

6
推荐指数
1
解决办法
3576
查看次数

DE 如何调用 ACPI 函数?

好的,首先,这不是我面临的问题,但我想更好地理解这一点。

如果我想从命令行关闭/重启我的机器,我需要调用:

$ sudo poweroff
$ sudo reboot
Run Code Online (Sandbox Code Playgroud)

也就是说,我需要 root 权限才能进行这些 ACPI 调用。

但是,我启动了我的 DE,(我使用 XFCE)而不授予它 root 权限:$ startxfce4 --with-ck-launch

现在,我知道该--with-ck-launch参数有助于 XFCE 关闭/重新启动我的系统,但我不明白如何。

什么允许 ConsoleKit 在没有 root 权限的情况下关闭?它如何在没有超级用户权限的情况下更改运行级别?既然有可能,我如何在没有 root 权限的情况下从控制台关闭我的机器?

linux shutdown not-root-user privileges consolekit

6
推荐指数
1
解决办法
536
查看次数

consolekit 和 elogind 有什么区别?

ConsloeKit在 Linux 上跟踪用户会话的传统机制。eLogind 具有类似的功能,但基于 systemd 并且是“独立的”。

它们的功能/特性集有什么区别?它们的优缺点是什么?

systemd daemon consolekit

5
推荐指数
1
解决办法
5857
查看次数