来自另一台机器的ssh命令

乔恩·斯诺(Jonh Snow)

因此,我通过ssh在机器A到机器B的脚本中“指令”一个命令(顺便说一句是脚本),并将其发送到后台。该命令如下所示:ssh -T MACHINEB SCRIPT &

我在机器A上运行的脚本没有超时。有时,我注意到命令/脚本的指令存在于机器B上(如果我为此做ps),但是有点挂起。ps显示正确的PID和PPID,但仅此而已,它还没有完成。

我正在尝试查找可能导致进程挂起的原因。我的意思是,我几乎可以肯定与代码相关,我只想舍弃以下可能性以及你们可能会添加的其他任何内容。

当我运行远程ssh脚本执行时,我的进程是否已附加到ssh会话?因此,如果我从A到B存在网络或ssh问题,我的过程会受到影响吗?

谢谢

吉勒斯“别再邪恶了”

ssh -T MACHINEB SCRIPT &只要SCRIPT正在运行,就使SSH连接保持运行状态。它需要这样做,因为:

  1. 如果SCRIPT产生任何输出,则SSH必须将其中继到主机。
  2. 如果SCRIPT读取输入,则SSH必须从主机中继输入。那可能有点微妙
  3. 当SCRIPT退出时,SSH将其退出状态发送到客户端,并且ssh进程以该状态退出。

如果连接断开,则在不尝试读写stdin,stdout或stderr的情况下,这不会影响SCRIPT。由于不涉及任何终端,因此当连接断开时,SCRIPT不会被SIGHUP杀死。但是,如果SCRIPT确实尝试打印一条错误消息,则该消息将通过连接。

您应该执行以下两项操作之一。

  • 批处理作业方法:确保SCRIPT不接受任何输入,并且将标准输出和标准错误记录到文件中。

    ssh -T MACHINEB 'myprogram </dev/null >myprogram.log 2>&1'
    
  • 交互式方法:在屏幕多路复用器内运行SCRIPT:Screentmux

    ssh -T MACHINEB screen -S somename -dm myprogram
    

    您可以通过附加到该屏幕会话来查看程序的运行情况。

    ssh MACHINEB screen -S somename -dr
    

    当程序退出时,屏幕会话退出。要使其保持可见状态以查看程序的输出和错误,请参阅在执行脚本结束后防止GNU屏幕终止会话

另请参阅执行远程命令,与ssh连接完全分离

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

不能从一台机器 SSH 到另一台机器

来自分类Dev

在终端ssh之后执行命令到另一台机器时如何更改路径

来自分类Dev

hadoop getmerge到另一台机器

来自分类Dev

从另一台机器查看ServicePulse

来自分类Dev

从另一台机器导入MDF

来自分类Dev

两台机器之间的SSH隧道只能SSH到第三台机器,而不能直接到另一台机器

来自分类Dev

cygwin startxwin,然后ssh进入另一台机器

来自分类Dev

通过ssh在另一台机器上发出远程git命令时如何使用本地Github ssh密钥

来自分类Dev

存储过程在一台机器上成功但在另一台机器上失败?

来自分类Dev

PHP multi curl在一台机器上工作,在另一台机器上失败

来自分类Dev

一台机器如何ping另一台机器,但是反向ping不起作用

来自分类Dev

如何将端口从一台机器转发到另一台机器?

来自分类Dev

存储过程在一台机器上成功但在另一台机器上失败?

来自分类Dev

如何在一台机器上编译幻象,然后在另一台机器上“移植”?

来自分类Dev

在一台机器上构建内核,在另一台机器上安装

来自分类Dev

当我知道另一台机器的ipv4时,确定另一台机器的ipv6地址

来自分类Dev

从另一台机器的另一个网页获取html

来自分类Dev

rsync 到同一 wifi 内的另一台机器

来自分类Dev

无法在另一台机器上签名apk(密码错误或被篡改...)

来自分类Dev

mysql,如何将数据备份到另一台机器

来自分类Dev

如何通过终端将文件复制到另一台机器?

来自分类Dev

如何从另一台机器连接到Docker API?

来自分类Dev

无法在另一台机器上签名apk(密码错误或被篡改...)

来自分类Dev

在另一台机器上使用gulp项目

来自分类Dev

调试程序在另一台机器上冻结

来自分类Dev

如何从本地网络上的另一台机器访问Docker容器

来自分类Dev

数据转发器项目未在另一台机器上显示

来自分类Dev

在另一台机器上部署应用程序

来自分类Dev

在另一台机器上使用新创建的插件

Related 相关文章

  1. 1

    不能从一台机器 SSH 到另一台机器

  2. 2

    在终端ssh之后执行命令到另一台机器时如何更改路径

  3. 3

    hadoop getmerge到另一台机器

  4. 4

    从另一台机器查看ServicePulse

  5. 5

    从另一台机器导入MDF

  6. 6

    两台机器之间的SSH隧道只能SSH到第三台机器,而不能直接到另一台机器

  7. 7

    cygwin startxwin,然后ssh进入另一台机器

  8. 8

    通过ssh在另一台机器上发出远程git命令时如何使用本地Github ssh密钥

  9. 9

    存储过程在一台机器上成功但在另一台机器上失败?

  10. 10

    PHP multi curl在一台机器上工作,在另一台机器上失败

  11. 11

    一台机器如何ping另一台机器,但是反向ping不起作用

  12. 12

    如何将端口从一台机器转发到另一台机器?

  13. 13

    存储过程在一台机器上成功但在另一台机器上失败?

  14. 14

    如何在一台机器上编译幻象,然后在另一台机器上“移植”?

  15. 15

    在一台机器上构建内核,在另一台机器上安装

  16. 16

    当我知道另一台机器的ipv4时,确定另一台机器的ipv6地址

  17. 17

    从另一台机器的另一个网页获取html

  18. 18

    rsync 到同一 wifi 内的另一台机器

  19. 19

    无法在另一台机器上签名apk(密码错误或被篡改...)

  20. 20

    mysql,如何将数据备份到另一台机器

  21. 21

    如何通过终端将文件复制到另一台机器?

  22. 22

    如何从另一台机器连接到Docker API?

  23. 23

    无法在另一台机器上签名apk(密码错误或被篡改...)

  24. 24

    在另一台机器上使用gulp项目

  25. 25

    调试程序在另一台机器上冻结

  26. 26

    如何从本地网络上的另一台机器访问Docker容器

  27. 27

    数据转发器项目未在另一台机器上显示

  28. 28

    在另一台机器上部署应用程序

  29. 29

    在另一台机器上使用新创建的插件

热门标签

归档