我需要在 sudo su 之后执行“monit restart haproxy”命令。
这是我的 script.sh
sudo su
monit restart haproxy.
在这里,如果我将执行 script.sh 文件,那么它将挂起并且不执行 monit restart haproxy 命令。
任何想法?
该sudo
命令要求您输入密码,这就是它会挂起的原因,您可以使用管道将密码传递给命令,如下所示:
echo <password> | sudo su
monit restart haproxy.
这里有一些关于 sudo su 的信息。您需要输入 sudo 或 su 命令的密码,这是我发布的链接中的一些引用,这可能是您问题的根源:
sudo - sudo 旨在以 root 权限运行单个命令。但与 su 不同的是,它会提示您输入当前用户的密码。此用户必须在 sudoers 文件中(或在 sudoers 文件中的组)。默认情况下,Ubuntu 会“记住”您的密码 15 分钟,这样您就不必每次都输入密码。