我正在尝试在远程计算机上使用sudo运行命令。当我直接用
ssh -t -t -t myserver -q "sudo otheruser<<EOF
remotescript.sh
EOF"
它工作正常,但是如果我在最后一行的末尾添加&,那么它将无法正常工作。为什么?我该如何运作?
我实际上从本地脚本运行了几个这样的命令(到不同的服务器),并将每个输出保存在不同的文件中,希望它们异步运行 。
注意:不能与otheruser @ myserver一起运行ssh。登录后,我真的需要运行sudo。
最佳答案
从远程计算机上的sudo配置(/ etc / sudoers)中删除 requiretty 。
还要在ssh中添加-f选项,这会将命令置于后台(man:“当ssh在后台运行时必须使用”)。
使用-f时,不需要“&”。
例如:
ssh -f -t -t -t myserver -q "sudo otheruser<<EOF
remotescript.sh
EOF"
关于bash - 异步运行ssh sudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18249164/