【发布时间】:2017-02-21 07:25:55
【问题描述】:
为什么 systemd 在使用 'service start' 时会删除选项?
“服务”的手册页将服务命令定义为:
服务脚本命令[选项]
和状态
service 将 COMMAND 和 OPTIONS 未经修改地传递给 init 脚本。
现在为一些名为“foo”的服务使用这个初始化脚本:
#!/bin/sh
case "$1" in
start)
echo $2 >> output
;;
someaction)
echo $2 >> output
;;
esac
exit 0
在使用 systemd 的系统上,在 daemon-reload 之后,service foo start bar 不会在输出文件中写入任何内容,而 service foo someaction bar 会按预期写入“bar”。 (在 Ubuntu 16.04 上测试)
在没有 systemd 的系统上,两个命令都按预期写入“bar”。 (在 Mint 17.1 上测试)
我敢打赌 stop 命令也是如此。
为什么在调用 start 而不是其他“自定义”命令时会删除选项?
【问题讨论】:
标签: ubuntu service systemd linux-mint init.d