Answers:
看完源代码之后,似乎consolekit(ck)使用了一个简短的脚本来执行关机和重新引导。这两个脚本安装为
/usr/lib/ConsoleKit/scripts/ck-system-{stop,restart}
在Arch Linux中,他们只是找到并执行{,/usr}/sbin/shutdown
即可。
因此,似乎没有任何方法可以配置ck来立即执行此操作(通常,我只是指在中简单地编辑一些文件/etc
),并且解决方法很简单。
只需将这两个脚本编辑为exec即可systemctl {shutdown,reboot}
。(但至少在Arch Linux上,每次升级后它可能会被覆盖。)
只需创建一个包装脚本即可/sbin/shutdown
执行正确的操作。(如果您以后要安装sysvinit,这将导致冲突,但希望不会出现问题。)
我还将寻找(并创建(如果没有的话))关于该问题的错误报告,我希望以后可以通过更好的方式来完成(确实不喜欢在外部进行配置/etc
)。
注意:Arch Linux现在具有systemd-sysvcompat软件包,该软件包将这些(init
/ halt
/ shutdown
等)作为systemctl
/的符号链接systemd
。