首页 > 解决方案 > 在远程 Linux 上执行 bash 脚本

问题描述

我有一个 bash 脚本可以说test.sh。该脚本包含以下内容:

#!/bin/bash
echo "khaled"
ads2 svcd& 

该脚本仅打印我的姓名(仅用于测试目的)并在后台执行广告服务应用程序。当我在我的 ubuntu 上运行脚本时,它可以正常工作。作为测试,我检查了内核上运行的程序

在此处输入图像描述

如你所见。ads2 运行并具有 12319 进程 ID。

现在我要做的是在 ubuntu 上运行脚本,但是从 Windows pc 远程运行。

因此,我在 Windows 上打开命令行并执行以下命令:

ssh nvidia@ubuntu ip-address ~/test.sh

我得到以下信息

在此处输入图像描述

如您所见,脚本运行并打印 khaled,但是在 Windows 命令行上,我想要的是脚本在 ubuntu 上执行。这证明了为什么该行ads2 svcd&不做任何事情,无论是在 Windows 上(这是有道理的,因为ads2安装在 ubuntu 上)还是在 linux 上。

那么如何在 ubuntu 上执行脚本呢?

提前致谢

标签: linuxbashshellssh

解决方案


使用完整路径启动 ads2。使用远程 SSH 时,您的环境变量可能与本地 shell 不同。

#!/bin/bash
echo "khaled"
/home/nvidia/ads2 svcd& 

不确定 ads2 的位置。尝试以下方法在您的 Ubuntu 本地 shell 上找到它。

command -v ads2

您可能还需要 nohup 来在 SSH 会话的生命周期之后保持该过程。


推荐阅读