相关疑难解决方法(0)

如何获取在Bash中通过管道传输给另一个进程的进程的PID?

我试图在Bash中实现一个简单的日志服务器.它应该将文件作为参数并在具有netcat的端口上提供.

( tail -f $1 & ) | nc -l -p 9977
Run Code Online (Sandbox Code Playgroud)

但问题是当netcat终止时,尾巴会被遗忘.(澄清:如果我不分叉尾程,它将继续运行,即使netcat终止.)

如果我以某种方式知道尾巴的PID然后我可以杀死它.
显然,使用$!将返回netcat的PID.

如何获得尾部过程的PID?

bash pid pipe

51
推荐指数
5
解决办法
3万
查看次数

如何在脚本中停止tail命令

我想做什么 - 使用自定义ssh客户端代码***开始将更改捕获到日志文件.经过一段时间(不是固定值并且基于事件),发出命令以停止拖尾.这是我用来捕获日志文件的最新更改的命令 - tail -f logfile.txt

我想能够用:q脚本发出的东西来结束它.我不想像键盘命令那样ctrl + c.

***我的自定义ssh客户端代码的伪代码(用oop语言编写)

include ssh-api
ssh = getSSHConnection();
cmd = 'cd to folder';
ssh.command(cmd);
cmd = 'tail -f log.txt';
ssh.command(cmd);
wait for special event to occur...
cmd = 'stop the tail now!'
out = ssh.command(cmd);
print "the changes made to log file were\n"  + out;
Run Code Online (Sandbox Code Playgroud)

我没有对日志文件所在服务器的写访问权限.

我尝试了什么 - http://www.linuxquestions.org/questions/red-hat-31/how-to-stop-tail-f-in-scipt-529419/

我无法理解那里的解决方案(在帖子2中).有人可以解释解决方案或建议采用不同的方法吗?

谢谢.

unix linux bash

12
推荐指数
1
解决办法
2万
查看次数

Linux:阻塞直到字符串在文件中匹配("tail + grep with blocking")

在bash/GNU工具中是否有一些单行方式阻塞,直到文件中有匹配的字符串?理想情况下,超时.我想避免多行循环.

更新:似乎我应该强调我希望在字符串匹配时结束进程.

linux grep gnu block

11
推荐指数
3
解决办法
1万
查看次数

标签 统计

bash ×2

linux ×2

block ×1

gnu ×1

grep ×1

pid ×1

pipe ×1

unix ×1