当我遇到正在打印到两行然后退出以显示提示的脚本时,我在虚拟机上玩一些漏洞利用学习技巧,然后在10秒钟后像这样在我的提示中打印该脚本:

[!] Wait for the "Done" message (even if you'll get the prompt back).
user@ubuntu:~/tests$ [+] Done! Now run ./exp


这怎么可能 ?是涉及克隆还是类似的东西?

最佳答案

该程序会通知您,即使您早先收到了提示,也应该等待"Done"消息。

这是因为某些其他进程正在后台运行,但已分离。

您开始的过程已经完成,这就是为什么您要返回提示的原因。但这催生了另一个(后台)过程,例如通过fork()或其他一些机制。等到您再次收到提示时,该其他进程仍在运行,并被告知等待它完成。

这样做时,它会将"Done"打印到从其父级继承的标准输出(stdout)上-默认情况下,该输出是您用来启动初始过程的同一终端。

不是最平滑的设计-主流程可能会等待生成的流程完成后再提示您,因为在继续进行之前其他流程显然很重要。也许作者不知道该怎么做。 ;-)

关于linux - 从后台进程打印到linux提示符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38586726/

10-15 13:08