#1 楼
systemd-analyze
是您的朋友。例如,systemd-analyze critical-chain
输出守护程序的阻塞树。 。如果要查看更详细的视图,可以在svg文件中呈现整个执行链。最后,您将看到
systemd-analyze plot > something.svg
工具,该工具输出点文件,该点文件输出整个层次结构: ps和svg文件。 以上所有工具都是内置在systemd-analyze工具中的,默认情况下至少在archlinux中是systemd附带的。我认为也有一些第三方项目在处理它。
评论
感谢您的回答,但是它没有解决问题,只是重申了部分问题(我提到我知道一种通过分析systemd的状态数据来做到这一点的方法)。因此,问题是在解决所有依赖关系(例如后启动)后如何获得启动序列的类似pstree的树。关键链差不多(尽管它是一棵自下而上的树),但是没有列出所有启动的单元。问题是什么:一棵树,列出了直到某个时刻(例如击中多用户目标)所执行的每个单个单元。
–星系
2014年8月5日12:36
systemd-analyze plot> something.svg完整执行了三个目标(它最接近您想要的)。 systemd-analyze点是依赖关系的完整图(这是最正确的表示形式)。这些不是您想要的吗?在绘图中,只需找到目标并查看需要运行的目标即可。完全列出了相同的依存关系图,如果它可以激发一些图分析工具包并选择要查看其依存关系的图点(点工具具有更多设置)。请参见手册页:freedesktop.org/software/systemd/man/systemd-analyze.html --order和类似内容
– IBr
2014年8月6日10:45
从手册页:绘制名称以“ avahi-daemon。”开头的任何单元的所有依赖关系:$ systemd-analyze点“ avahi-daemon。*” dot -Tsvg> avahi.svg $ eog avahi.svg绘制所有已知目标单元之间的依赖关系:systemd-analyze dot --to-pattern ='*。target'--from-pattern ='*。target'|点-Tsvg> targets.svg $ eogtargets.svg
– IBr
2014年8月6日上午10:48
IBr,但是不幸的是,这在文本控制台中无法使用。我真的很感谢您在答案上花费的时间(如果您想获取一些数据进行分析是正确的),但是它不能解决原始问题,因此我可以接受。抱歉。
–星系
2014年8月7日在9:37
好的没问题。我自己也喜欢命令行工具:)
– IBr
2014年8月7日在9:51
#2 楼
不确定我是否正确理解了问题,但是以下命令提供了树可视化功能:sudo systemctl status
还有: />
希望这会有所帮助:)
此外,为systemctl symlinks文件夹树构建树可能对其他目的也有用: >
找出导致系统启动速度变慢的旧/越野车,然后使用
systemctl disable
命令禁用它们,实际上非常有用。 >那表示我真的同意OP,应该通过命令行工具而不是图形工具来提供此基本功能。那么您如何处理svg文件呢?实际上,有一种方法。如果您不能使用
scp
(ssh工具)在另一台计算机上获取文件,则fbi
可能实际上会为您提供帮助:)只需使用箭头在图片内导航即可。有缩放选项,列出fbi -h
。再次希望对您有所帮助。 编辑2:
fbi
无法在ssh上运行。您可以像ssh -Y user@server
这样进行X转发,但是您需要在远程服务器上运行X服务器。最好的选择是使用
sshfs
。它在用户空间中可以很好地工作,例如与鹦鹉螺一起使用。要做一些配置,请参见:sudo systemctl list-dependencies
评论
问题是有关依赖关系解析后所有激活的系统单元systemd的执行树。所以这个答案是一个错过。
–星系
17年7月7日在6:28
也许您的问题很适合功能要求?当然可以。无论如何,我在遇到您的问题后就贴出了这个答案,因为它在某种程度上类似于我需要一些信息的另一个问题,而且我感到缺少一些基本的范例(例如您尝试过但不起作用的东西)有助于澄清),尤其是对于像我这样的人,在丢失了System V init及其方便的rc.conf文件后仍在挣扎。抱歉,我的回答不合适。虽然不值得一票。
– Joel.O
17年3月13日在8:57
使用解决您的问题的方法进行了编辑。希望它能再次有所帮助。
– Joel.O
17年3月13日在10:36
我无法在服务器上的ssh上使用fbi。但是sshfs的效果更好。参见编辑2。
– Joel.O
17年4月6日在8:45
#3 楼
可能仍不能完全回答您的问题,但请尝试使用--fuzz
选项systemd-analyze critical-chain --fuzz 1h
请注意,您还可以指定单位以查看其关键链,因此您不仅限于multi-user.target
systemd-analyze critical-chain network.target local-fs.target
希望对您有所帮助
评论
我已经为systemd创建了可视化工具。您可以在github.com/ywiyogo/systemd-visual中检查并尝试该工具。