我们正在用Ubuntu 16.04替换Ubuntu 8.04服务器.服务器运行我们需要的单个(非OS)服务. (我是该服务的开发人员,而不是本周休假的系统管理员)服务脚本看起来像这样:
#!/bin/sh # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # ... case "$1" in start) umask 002 #... exit $? ;; stop) # ... exit $? ;; restart) stop || exit $? start exit $? ;; status) # ... exit $? ;; *) echo "Usage my_service (start|stop|restart|status)" exit 1;; esac
更新Java的路径后……我得到了服务.但是打电话:
sudo service my_service status
返回一些“标准”systemd输出,而不是脚本的“status”部分中的代码.如果我这样做,结果相同:
sudo /etc/init.d/my_service status
我对systemd认为我想知道/看到的内容不感兴趣;我只是希望它执行我的代码而不是它自己的代码.
“status”的输出由某些Web管理控制台解析,我不想更改该应用程序以考虑在特定服务器上安装的Linux版本.同一服务的“status”应使用相同的格式(IMO)输出,与特定的OS版本无关.
我如何告诉systemd“尊重”我的状态命令,而不是忽略它?
搜索“systemd status”并没有把我带到任何地方,除了我了解到systemd似乎相当复杂.