linux - 在远程 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 上执行脚本呢?
提前致谢
解决方案
使用完整路径启动 ads2。使用远程 SSH 时,您的环境变量可能与本地 shell 不同。
#!/bin/bash
echo "khaled"
/home/nvidia/ads2 svcd&
不确定 ads2 的位置。尝试以下方法在您的 Ubuntu 本地 shell 上找到它。
command -v ads2
您可能还需要 nohup 来在 SSH 会话的生命周期之后保持该过程。
推荐阅读
- blogger - 如何为 Google Blogger 添加“相关帖子”小部件
- javascript - 从函数中检索值返回未定义
- c# - 如何在将记录插入数据库c#后立即在组合框中显示主键?
- websphere - 使用 check_was Nagios 插件监控 WebSphere 门户线程池时出错
- spring - @Valid 注释适用于 @RequestBody 但不适用于 RequestEntity
- asp.net - 文本的经典asp加密
- laravel - 如何在phpunit laravel中通过嘲笑传递函数使用查询构建器
- javascript - 第二次调用 ng-keyup 时无法访问它
- java - 如何将 Map Reduce 程序与 Web 应用程序集成
- scala - Scala 对 JSON 序列化的密封特性