gpt4 book ai didi

ssh 客户端(路由器上的 dropbear)置于后台时不输出

转载 作者:行者123 更新时间:2023-12-05 00:29:26 32 4
gpt4 key购买 nike

我正在尝试使用 Linux 机器上的 bash 脚本在远程 Linux 机器上自动化一些事情,并有一个工作命令(大括号是 cmd 连接的遗物):
(ssh -i /path/to/private_key user@remoteHost 'sh -c "echo 1; echo 2; echo 3; uname -a"')
但是,如果连接一个 & 符号以在后台执行它,它似乎会执行,但不会在 stdout 或 stderr 上打印输出,甚至重定向到文件(在大括号内)也不起作用......:
(ssh -i /path/to/private_key user@remoteHost 'sh -c "echo 1; echo 2; echo 3; uname -a"') &
顺便说一句,我正在运行 ssh Linux 2.4.37.10 上 BusyBox v1.17.4 中的客户端 dropbear v0.52(TomatoUSB 构建在 WRT54G 上)。

有没有办法获得输出?这种行为的原因是什么?

编辑:

为方便起见,这里是简单的 ssh帮助输出(在我的 TomatoUSB 上):

Dropbear client v0.52
Usage: ssh [options] [user@]host[/port][,[user@]host/port],...] [command]
Options are:
-p <remoteport>
-l <username>
-t Allocate a pty
-T Don't allocate a pty
-N Don't run a remote command
-f Run in background after auth
-y Always accept remote host key if unknown
-s Request a subsystem (use for sftp)
-i <identityfile> (multiple allowed)
-L <listenport:remotehost:remoteport> Local port forwarding
-g Allow remote hosts to connect to forwarded ports
-R <listenport:remotehost:remoteport> Remote port forwarding
-W <receive_window_buffer> (default 12288, larger may be faster, max 1MB)
-K <keepalive> (0 is never, default 0)
-I <idle_timeout> (0 is never, default 0)
-B <endhost:endport> Netcat-alike forwarding
-J <proxy_program> Use program pipe rather than TCP connection

1天后修改:

无论有没有相同的结果,牙套都不会受到伤害。我想将 ssh 身份验证置于后台,所以 -f选项不是解决方案。有趣的旁注:如果指定了意外选项(如 -v ),则错误消息 WARNING: Ignoring unknown argument '-v'显示 - 即使放在后台,所以从后台进程获取输出通常适用于我的环境。

我试过 x86 Ubuntu 常规 ssh客户:它有效。我也试过 dbclient在 x86 Ubuntu 上:也可以。所以这个问题似乎特定于 TomatoUSB 构建 - 或者在“dropbear v0.52”内部是 TomatoUSB 构建和 Ubuntu 提供的构建之间的未知修复(帮助输出的差异只是双倍大小的默认接收窗口缓冲区在 Ubuntu 上)...进程如何知道它是否被置于后台? 问题有解决办法吗?

最佳答案

我在我的 OpenWRT 路由器上遇到了类似的问题。如果没有标准输入,Dropbear SSH 客户端不会向输出写入任何内容,例如当由 cron 运行时。我认为 & 对进程标准输入(无输入)具有相同的影响。

我在作者的 bugtracker 上找到了一些解决方法。尝试从/dev/zero 重定向输入。
喜欢:

ssh -i yourkey user@remotehost "echo 123" </dev/zero &

正如我试图在 my blog page 中描述的那样,它对我有用.

关于ssh 客户端(路由器上的 dropbear)置于后台时不输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17221807/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com