【发布时间】:2016-01-27 16:33:16
【问题描述】:
我正在尝试使用 systemctl 或 service 命令停止系统服务。命令如下
systemctl start service_name or service service_name start
在该停止方法中,要求用户输入未显示在控制台上的密码(怀疑在后台运行)。停止方法如下
stop() {
read -s -p "Please provide password to stop the service" passwd
}
使用服务命令在 CentOS 6 中运行相同,它显示在控制台上并输入输入。任何人都可以建议我是否错过了此处提示的内容或我们如何使用 systemctl 提示用户输入。
【问题讨论】:
-
从 RHEL 6 到 7 发生了很多变化,例如 upstart 现在变成了别的东西,诸如此类。这很可能也发生了变化,您应该查看 Centos 从 6 到 7 的更改,以了解发生了什么变化以及它是否会导致您尝试做的事情出现问题。
-
这是真的 jgr208,不知道从 RHEL 6 到 7 没有提示的具体原因。感谢您的评论。
-
CentOS 6 使用了 upstart,这是一个更传统的服务系统,因为它使用 shell 脚本/等。 CentOS 7 使用 systemd 而不是(不是为了它的核心操作)。当它运行“遗留”初始化脚本时,它很可能以分离/非交互方式执行此操作。也就是说,在
stop操作中这样的提示对我来说似乎很奇怪。为什么没有服务权限/密码的人首先有权在该机器上停止它? -
好消息 Etan Reisner...感谢您的评论。
标签: linux shell service user-input centos7