【问题标题】:User input is not promted in CentOS7 using systemctl or service command使用 systemctl 或 service 命令在 CentOS7 中不提示用户输入
【发布时间】: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


【解决方案1】:

终于知道了如何在 CentOS 7 中读取用户密码。这就是命令。

pwd=`systemd-ask-password --no-tty "Please enter admin password "`

systemd-ask-password — 向用户查询系统密码

【讨论】:

  • 这是否允许在使用 systemctl 调用时运行交互式脚本?
猜你喜欢
  • 1970-01-01
  • 2017-09-18
  • 2023-03-25
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-05-18
相关资源
最近更新 更多