首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘`loginctl终止-session`’` `loginctl kill-session`‘和’`systemctl‘之间的功能区别是什么?

‘`loginctl终止-session`’` `loginctl kill-session`‘和’`systemctl‘之间的功能区别是什么?
EN

Server Fault用户
提问于 2022-06-11 15:39:08
回答 1查看 671关注 0票数 0

我在分析这些命令之间的差异时遇到了困难,特别是在session-c###.scope单元中使用它们时。我试着查看手册页,并仔细查看代码,但仍然存在一些问题。

手册页建议loginctl kill-session向会话中的一个或所有进程发送信号。那么,这与loginctl terminate-session有什么不同呢?手册页显示

这将杀死会话的所有进程,并释放附加到会话的所有资源。

但这与kill-session -s SIGKILL有很大不同吗?

我面临的问题是在做了类似loginctl kill-session c###之类的事情之后,会话不再出现在loginctl session-statuslist-sessions中,但是systemctl status session-c###.scope将显示它被放弃,并且进程似乎仍然按照ps。我想知道loginctl terminate-session会不会更好,甚至systemctl stop

EN

回答 1

Server Fault用户

回答已采纳

发布于 2022-07-13 08:39:25

loginctl kill-session [--signal=]具有与systemctl kill完全相同的效果--最终通过.scope单元对象上的D总线调用systemd的KillUnit(信号)。(请注意,两者都默认为发送SIGTERM,而不是SIGKILL。)

类似地,loginctl terminate-session具有与systemctl stop相同的效果,这两个命令都将通过D总线调用systemd的StopUnit()。(但是,loginctl将在试图停止.scope之前显式地将其标记为“放弃”,从而导致systemd记录任何剩余的进程。)

这两种情况的一个小区别是,loginctl所做的调用是通过logind守护进程进行代理的,与对systemd的直接调用相比,后者应用了不同的polkit授权规则。(例如,通常非根用户不能直接调用systemd。)

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1103060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档