服务启动/停止/重启命令无输出


10

我刚刚安装了Ubuntu 16.04 LTS,发现在运行时

usr@server:~$ sudo service <servicename> restart
usr@server:~$

服务已重新启动(我可以通过看到状态service <servicename> status),但是外壳程序会直接返回命令行,而不会出现预期的情况:

* Stopping <servicename>     [ OK ]
* Starting <servicename>     [ OK ]

您是否查看了日志以查看是否有任何信息可以帮助诊断问题?它应该在/ var / log /中
迭戈

2
服务本身没有问题。命令提示符返回而没有输出令我感到困惑。每个服务都会发生这种情况。该命令执行了预期的操作(启动/停止/重新启动服务),但是没有输出
Eduardo Coria

Answers:


9

您不应该期望这样的输出。

首先,Ubuntu在早期版本中没有这种行为。在不到十年的时间里,Ubuntu还是一个暴发户系统,并且service这些年来,Ubuntu 上的命令行为一直与您期望的不一样。您可以service如何获取服务命令以在15.10中打印输出中的图像中看到该命令的新贵行为

对于您来说,答案与去年使用Ubuntu 15.10版本的人几乎相同:

您正在使用Ubuntu 16.10版本,这是一个系统化的操作系统。您的系统服务管理不再由新贵(或以前在任何非Ubuntu操作系统上执行过的任何实用程序)执行。它由systemd执行。

service命令可能是相同的……但是Debian / Ubuntu service命令是一个Shell脚本,它试图自动检测upstart或systemd是正在运行的系统服务管理器,并为upstart和systemd运行实际的本机服务管理命令。它为upstart和systemd执行两个几乎完全不同的代码路径。

新贵的本地服务管理命令initctl startinitctl stopinitctl status等等。这些消息随即打印。

systemd的本地服务管理命令systemctl startsystemctl stopsystemctl status等等。那些在操作时不打印输出。

进一步阅读


1
“您不应该期望这样的输出。” 不是开始回答的好地方。您基本上是在说:“您的意见是错误的”。我认为您要说的是“ systemd无法实现”。在新贵时期,Ubuntu DID输出...问题在于“如何获取服务命令以在15.10中打印输出”。在15.10之前,Ubuntu使用upstart,upstart(例如sysvinit)非常冗长。因此,请不要说“十年来一直这样”。还没有。它在15.10中更改。自发行版开始部署Systemd以来,Systemd并不冗长。
bobpaul

发问者非常清楚地告诉了您xe期望什么,而新贵的输出与之并不相似。您感到困惑,或者没有阅读问题。
JdeBP '19

0

实际上,您不需要OK输出。没有输出意味着可以。当服务无法正常启动时,Ubuntu会显示以下内容:

php5.6-fpm.service的作业失败,因为控制进程退出并显示错误代码。有关详细信息,请参见“ systemctl状态php5.6-fpm.service”和“ journalctl -xe”。

以我为例,这个示例是我的php-fpm.conf上的配置错误,导致服务无法启动。按照说明进行操作后,我对导致错误的原因进行了排序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.