详细信息:我正在尝试在ash shell(BusyBox)下运行这个简单的脚本作为后台任务.@H_301_2@
myscript.sh&@H_301_2@
然而脚本立即停止…@H_301_2@
[1]+ Stopped (tty input) myscript.sh@H_301_2@
myscript.sh内容……(只有relvant部分,其他我捕获SIGINT,SIGHUP等)@H_301_2@ @H_301_15@#!/bin/sh catpid=0 START_COPY() { cat /dev/charfile > /path/outfile & catpid = $! } STOP_COPY() { kill catpid } netcat SOME_IP PORT | while read EVENT do case $EVENT in start) START_COPY;; stop) STOP_COPY;; esac done
从简单的命令行测试我发现bot cat和netcat尝试从tty读取.
请注意,此netcat版本没有-e来压缩tty.@H_301_2@
现在可以做些什么来避免myscript被阻止?@H_301_2@
我尝试过的事情没有取得任何成功:@H_301_2@
1)netcat / cat …< / dev / tty(或tty的输出) 2)使用()在子shell中运行包含cat和netcat的块.这可能有用但是如何抓住猫的PID? 给你的专家…… 问题依然存在.
一个简单的测试,你们都可以尝试:@H_301_2@
1)在一个终端上运行netcat -l -p 11111(不带&)@H_301_2@
2)在另一个终端运行netcat localhost 11111& (这应该在一段时间后停止,并显示Stopped(TTY输入)消息)@H_301_2@
怎么避免这个?@H_301_2@