如何在 SSH 中获取最后一个后台进程的 pid

如何在 SSH 中获取最后一个后台进程的 pid

我的 shell 脚本通过 SSH 运行:

ssh -i mycert.pem [email protected] <<SSHBLOCK
pm2 logs --lines 100 &
pid=$!
sleep 3
kill $pid
SSHBLOCK

该脚本在本地服务器上按预期工作(未包装在 sshblock 中)。但是当我需要获取远程服务器上的日志时,$pid 就是空白的。为什么是$!在上面的 SSHBLOCK 中使用时为空?

答案1

您必须使用引号 '' 或转义 \ 来远程扩展变量。因此,使用此处文档<<'SSHBLOCK'<<\SSHBLOCK

相关内容