ssh client (dropbear on a router) does no output when put in background
我正在尝试在Linux机器上使用bash脚本在远程Linux机器上实现一些自动化,并有一个可工作的命令(括号是来自cmd连接的遗留物):
但是,如果一个与符号连在一起以在后台执行它,那么它似乎会执行,但无论是在stdout还是stderr上,都不会打印任何输出,甚至重定向到一个文件(在大括号内)也不会起作用…:
顺便说一下,我正在运行Linux2.4.37.10上BusyBox v1.17.4中的
有没有办法得到输出?这种行为的原因是什么?
编辑:
为了方便起见,这里是普通的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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认证放到后台,所以
我试过X86 Ubuntu常规版
我的OpenWRT路由器也有类似的问题。如果没有stdin(例如由cron运行时),Dropbearssh客户机不会向输出写入任何内容。我假设&;对进程stdin有相同的影响(无输入)。
我在作者的BugTracker上找到了一些解决方法。尝试从/dev/zero重定向输入。像:
1 | ssh -i yourkey user@remotehost"echo 123" </dev/zero & |
当我试图在博客页面上描述的时候,它对我很有用。