gpt4 book ai didi

bash - 如何 sudo su;然后运行命令

转载 作者:行者123 更新时间:2023-12-04 16:28:36 24 4
gpt4 key购买 nike

谁能帮我解决以下问题

我需要通过 ssh 连接到另一台服务器,例如ubuntu 用户有权限运行 sudo su 肯定 然后执行 pm2 restart 命令

完整的命令如下所示

#!/bin/sh
CMD="sudo su; pm2 restart 0; pm2 restart 1; exit;"
ssh -i somepemfile.pem ubuntu@1.1.1.1 $CMD

例如,我可以使用 sudo 正常运行任何命令

CMD="sudo /etc/init.d/apache2 restart"  

但在 sudo su 的情况下,它会以某种方式挂起并且不响应

最佳答案

除非您有不寻常的设置,否则您通常不能将 su 与前面的其他类似命令串起来。我想它正在运行 sudo su,然后卡在根环境/ session 中,因为它在执行 pm2 命令之前等待您退出。相反,我会考虑使用 -c 选项:

CMD="sudo su -c 'pm2 restart 0; pm2 restart 1'"
ssh -i somepemfile.pem ubuntu@1.1.1.1 "$CMD"

正如另一个答案中所建议的,在 ssh 调用中将 $CMD 变量封装在引号中也可能很有用。

关于bash - 如何 sudo su;然后运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57527095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com