我们公司使用 SUSE Linux Enterprise。
现在我们已经有了第一台 SLES 12 机器(这是 SLES 中使用 systemd 的第一个版本)。
我找到了一个链接,其中有人说“启动”、“停止”和“重新启动”正在工作,但不再涵盖“状态”。
http://comments.gmane.org/gmane.comp.sysutils.systemd.devel/3050
-- 就像 ExecStatus 一样?
不,没有。为此,最好的办法就是提供一个独立的工具,因为几乎没有真正需要将其集成到 systemd 本身中。
所以这家伙似乎说“systemctl status someservice”不再被覆盖,所以你必须使用另一个工具。
但是,如果我输入systemctl status apache2
,它就会起作用:
systemctl status apache2
apache2.service - The Apache Webserver
Loaded: loaded (/usr/lib/systemd/system/apache2.service; disabled)
Active: inactive (dead)
他们是如何实现仍然拥有一个可用的“systemclt status apache”的?
答案1
systemd 有许多处理基本内容的监视器类型。常见的一个是“systemd 启动的进程是否仍在运行”。这与配置数据、日志行等一起是 systemctl 报告的信息类型
$ systemctl status httpd
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2016-06-03 09:27:28 EDT; 2 weeks 3 days ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 484 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
Main PID: 784 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
|- 532 /usr/sbin/httpd -DFOREGROUND
|- 533 /usr/sbin/httpd -DFOREGROUND
|- 534 /usr/sbin/httpd -DFOREGROUND
|- 535 /usr/sbin/httpd -DFOREGROUND
|- 536 /usr/sbin/httpd -DFOREGROUND
|- 784 /usr/sbin/httpd -DFOREGROUND
`-2677 /usr/sbin/httpd -DFOREGROUND
Jun 17 03:49:13 SERVER systemd[1]: Reloaded The Apache HTTP Server.
Jun 19 03:17:03 SERVER systemd[1]: Reloaded The Apache HTTP Server.
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Hint: Some lines were ellipsized, use -l to show in full.
systemd 不处理的是复杂的事情(“我的应用程序可以与数据库对话并提供良好的结果”)。对于传统的初始化脚本,“状态”调用几乎可以执行任何操作。对于 systemd,它仅限于内置任务。