什么是在后台运行进程并仅在需要时接收其输出的最佳方法?
预期使用情况:创建具有重型初始化的提示输出脚本,使其每个会话仅初始化一次而不是在每次提示运行时都初始化。注意:需要双向通信:shell 需要告诉何时需要新提示,上一个命令的状态。
已知解决方案:
- 在文件系统上创建一些显式文件(FIFO 文件、UNIX 套接字):最好避免使用此方式,因为这意味着我需要选择文件名,确保它在退出时被垃圾回收,并添加清理不再使用的文件的内容以防发生崩溃。 - zsh/zpty 模块:对于此工作来说有点过于复杂,并且在 bash 中不起作用。 - 协处理器:在 bash 中不起作用,据我所知,每个会话只允许一个协处理器。
预期使用情况:创建具有重型初始化的提示输出脚本,使其每个会话仅初始化一次而不是在每次提示运行时都初始化。注意:需要双向通信:shell 需要告诉何时需要新提示,上一个命令的状态。
已知解决方案:
- 在文件系统上创建一些显式文件(FIFO 文件、UNIX 套接字):最好避免使用此方式,因为这意味着我需要选择文件名,确保它在退出时被垃圾回收,并添加清理不再使用的文件的内容以防发生崩溃。 - zsh/zpty 模块:对于此工作来说有点过于复杂,并且在 bash 中不起作用。 - 协处理器:在 bash 中不起作用,据我所知,每个会话只允许一个协处理器。