CentOS 7 systemctl - 没有反馈或状态/输出

vin*_*ich 9 linux centos centos7

我刚刚在一台服务器上安装了 CentOS 7.1,但systemctlservice.

在 CentOS 6 上,我在运行时会得到反馈service,例如:

root@centos6 [~]# service mysql restart
Shutting down MySQL........................................[  OK  ]
Starting MySQL.............................................[  OK  ]

root@centos6 [~]# service mysql status
MySQL running (910285)                                     [  OK  ]
root@centos6 [~]#
Run Code Online (Sandbox Code Playgroud)

但是在 CentOS 7 上,当我使用 时systemctl,我什么也得不到。我不知道发生了什么,或者甚至发生了什么:

root@centos7 [~]# systemctl restart mysql
root@centos7 [~]# /bin/systemctl restart  mysql.service

# Nothing happened
Run Code Online (Sandbox Code Playgroud)

当我service在 CentOS 7 上运行时,会发生这种情况:

root@centos7 [~]# service mysql restart
Redirecting to /bin/systemctl restart  mysql.service
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

小智 12

这是我所做的:

systemctl start my-service && journalctl -fexu my-service
Run Code Online (Sandbox Code Playgroud)

journalctl 是从 systemd 服务获取输出的最简单方法。

  • 这是一个相当丑陋的黑客,需要 2 个命令来完成一个命令的工作。Systemctl 因不提供详细标志(甚至是用于调试的多个详细级别)而被破坏。地球上的所有其他 Linux 命令都支持这一点,并且有充分的理由。Unix 的零反馈政策到今天已经过时了,我们生活在一个交流时代,我们喜欢在成功时得到反馈(使用安静标志表示没有输出),想象一下启动时没有显示内核消息,因为“没有失败”,很愚蠢吧?它真的非常容易实现。需要一个好的例子吗?看看安瑟伯吧! (2认同)

Mic*_*ton 6

像任何好的 unix 命令一样,systemctl除非出现问题,否则不输出任何内容,或者您​​运行的命令明确要求输出。如果你什么也没看到,那么命令就成功了。

如果您愿意,可以运行systemctl status mysql以查看其当前状态。

  • 学士。“好”命令实际执行。`systemctl start` 在我的 osmc 系统上似乎是一个 noop。而且它不像我是一个系统新手。我已经在 Ubuntu、Debian 和 Raspbian 上运行它一年多了。在我的特殊情况下,`systemctl status deluged` 显示的是两小时前的结果,而不是我最近 3 或 4 次调用的结果。 (5认同)
  • 多么荒谬的教义。你想让我列出那些即使没有问题也能输出一些东西的好的 UNIX 命令吗?你想让我告诉你这些命令中有多少最初是由发明 UNIX 的人编写的? (4认同)
  • 什么“好的 unix 命令”不提供调试选项?systemd 单元文件可能非常复杂,因此“开始”或“停止”可以转化为十几种不同的操作。然后有一个长期存在的问题:“它是挂着还是只是忙?” 甚至 cp、mv、rm 和 ln 也有一个冗长的选项,你不能比那些更简单。 (3认同)