有没有办法查看 Solaris 上启动/引导时运行的命令列表?
我知道启动时安装了一个网络驱动器,但我想查看正在使用的确切“mount ...”命令。
答案1
要查看 Solaris 10 及更高版本中默认启动的所有文件系统相关服务,请运行:
svcs \*filesystem\*
这将返回如下输出:
STATE STIME FMRI
online Jun_11 svc:/system/filesystem/root:default
online Jun_11 svc:/system/filesystem/usr:default
online Jun_11 svc:/system/filesystem/minimal:default
online Jun_11 svc:/system/filesystem/local:default
online Jun_11 svc:/system/filesystem/autofs:default
要了解任何特定文件系统服务如何挂载其文件系统,您需要查看该服务的 start/exec 服务属性。
例如,让我们看一下 /usr 文件系统。
svcprop -p start/exec svc:/system/filesystem/usr:default
向我们展示用于此服务的方法脚本。
/lib/svc/method/fs-usr
阅读该脚本将显示“mountfs”命令正在用于挂载 /usr 文件系统。查看方法脚本的顶部,您可以看到 /lib/svc/share/fs_include.sh 已被包含在内。检查该文件会发现一个名为 mountfs 的 shell 函数,该函数标准化传递到 /sbin/mount 的选项。
通过了解 SMF 以及服务和依赖项之间的交互,您可以更深入地了解系统实际在做什么以及如何完成任务。
答案2
回答标题问题:
是的,如果您运行的是 Solaris 10 或更高版本,则可以轻松完成此操作。只需使用匿名 dtrace 脚本即可记录从启动开始的每个 exec 调用。
请参阅该博客的示例:http://alexeremin.blogspot.com/2009/01/boot-chart-with-help-of-dtrace-and.html
您需要修改该脚本以使其显示传递给 exec 的参数。
答案3
也许你应该看看第 28 章 - 挂载和卸载文件系统(任务)来自系统管理指南,第 1 卷。