我很好奇我是否可以打印出完全展开的ExecStart/ExecStop
命令行。考虑以下示例:
ExecStart=/usr/bin/java $OPTS_COMMON $OPTS $OPTS_LOG $OPTS_DEBUG some.class.Start --param1 ${PARAM1} --param2 ${PARAM2}
Run Code Online (Sandbox Code Playgroud)
我有很长的命令行,其中涉及很多环境变量。如果某些变量出错(例如通过直接配置),服务可能根本无法启动。但是,我在任何地方都没有看到完全扩展的带有替换环境的行,我很难找出问题所在。
我没有运气在谷歌上搜索这个,到目前为止我发现的唯一可能性是修改单元文件以运行/usr/bin/echo
而不是服务本身。但这有点乏味。或者更烦人的解决方案 - 一一检查每个环境变量。
有什么方法可以强制 systemd 向我显示实际尝试运行的内容吗?
我正在尝试估计在 32 位 CentOS 6.2 上运行的应用程序的 IOPS 要求。我开始在一台带有 SATA 磁盘的机器上进行一些测量,我对 sar 测量的 IOPS 和 tps 之间的差异感到非常困惑。
根据维基百科SATA 磁盘应该执行 75-100 IOPS。ioping 实用程序似乎为随机访问测试确认了这一点:
# ./ioping -R /dev/sda
--- /dev/sda (device 931.0 Gb) ioping statistics ---
279 requests completed in 3.0 s, 92 iops, 371.3 kb/s
min/avg/max/mdev = 2.7 ms / 10.8 ms / 130.8 ms / 7.9 ms
Run Code Online (Sandbox Code Playgroud)
但是 sar 产生的 tps 值要高得多(/dev/sda):
# iostat 1
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 2.02 14.86 0.00 …
Run Code Online (Sandbox Code Playgroud)