我环顾四周,因为我认为这将是一个相当普遍的问题,但似乎没有什么对我有用。
基本上我正在尝试通过 SSH 连接到设备(Raspberry Pi)来运行一个进程。过程是node ./bin/www
。我写了一个publish.sh
脚本,在此之前做了一些事情,但是当我运行命令时ssh user@hostname "cd <my-location>;node ./bin/www
,它分别在我当前的 bash shell 中启动进程。
我要做的是打开一个新的bash shell 来运行该命令,因为该进程将启动一个 Web 服务器。
我尝试包装我的ssh
命令,bash -c 'ssh ...'
但它仍然在启动publish.sh
脚本的同一个 shell 窗口中运行。我做错了什么吗?我到底需要在我的 shell 脚本中做什么才能在新的 bash shell 进程中运行命令?
谢谢!
您可以使用
ssh
with-n
选项作为,-X
转发 X11 是可选的。在你的情况下,示例:要在远程机器上打开一个文本文件 (file.txt),使用
gedit
,从
man ssh
要使用 shell 执行此操作:
有点严格的使用
disown
(nohup
也可以使用):-t
将分配一个伪 TTY 来启用作业控制bash -i
将使 shell 交互,否则与 master 的连接将被关闭在您的情况下,您可以在没有命令分组的情况下逃脱
{}
: