我需要将 bash 命令传递到另一个需要执行以下操作的进程:
- ssh 进入计算机。这不需要密码提示。
- 设置一些环境变量:source path/to/script.sh
- 启动需要 (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