我正在尝试使用以下命令以非交互方式重新启动 Linux 虚拟机上的服务。
gcloud compute ssh {user}@{vm_name} --command="{script}" --project={tenant_project_name} --zone={vm_zone} --tunnel-through-iap --quiet
script = systemctl restart tlu
我看过很多文章,得出的结论是首先运行
sudo su
并运行重新启动命令。但是当我运行sudo su
时,管道代理运行了很长一段时间(到目前为止)。但是,如果我在虚拟机内尝试,执行后sudo su
不会提示密码。
请在这里帮助我
当从外部运行“
sudo su
”命令连接Linux虚拟机时,通常需要您手动提供可以登录虚拟机的有效用户的密码。
同样,当您在没有交互模式的管道中运行此命令时,管道将一直等待您提供所需的密码,直到超时。要将密码传递给 '
sudo su
' 命令,您可以尝试使用管道,如下所示。
pwd="xxxx"
echo $pwd | sudo su
当您在Linux虚拟机上尝试时,由于您已经手动提供了正确的用户名和密码来登录虚拟机,因此在虚拟机上直接手动运行“
sudo su
”命令时,一般不会要求您提供再次输入密码。