ssh后执行多个命令

ssh后执行多个命令

我需要将 bash 命令传递到另一个需要执行以下操作的进程:

  1. ssh 进入计算机。这不需要密码提示。
  2. 设置一些环境变量:source path/to/script.sh
  3. 启动需要 (2) 的 GUI 程序。

到目前为止,我有以下内容:

ssh -n -f pc-name -XYC nohup source folder/setup_thing.sh; program

为了我的努力,我得到:

nohup: failed to run command `source': No such file or directory
bash: program: command not found

我尝试过类似的修复以及其他几个类似的答案。我不能将所有这些放入 bash 文件中,然后调用ssh mySever 'nohup bash myscript.sh'.

如何重构上述命令以使其成功执行?

答案1

我会尝试

 ssh -n -f pc-name -XYC ". folder/setup_thing.sh; nohup  program &"
  • . folder/setup_thing.sh将从 setup_thing.sh 初始化变量。
  • nohup program &将在 backgroup 中运行程序,并从 ssh 返回(由于 nohup)”

答案2

我试过这个:

nohup ssh -n -f pc-name -XYC "source folder/setup_thing.sh; program"

它起作用了。虽然它确实告诉我

nohup: ignoring input and redirecting stderr to stdout

相关内容