深入了解 Expect 脚本作为守护进程的应用与实现
1. 子进程的工作机制
子进程在整个系统中扮演着重要的角色。它首先会立即断开连接,然后生成实际的进程。之后,子进程会等待每个命名管道(FIFO)的另一端被打开。一旦打开,这些 FIFO 就会被移除,以防止其他进程连接,随后开始交互。当用户级进程退出时,子进程会收到一个文件结束符(EOF),从交互中返回,并重新创建 FIFO,接着再次等待 FIFO 被打开。如果实际进程退出,子进程也会随之退出。以下是子进程的代码实现:
proc child {argdate argv} {
global infifosuffix outfifosuffix
disconnect
# these are backwards from the child's point of view
# so that we can make everything else look "right"
set infifosuffix ".o"
set outfifosuffix ".i"
set pid 0
eval spawn $argv
set proc_spawn_id $spawn_id
while {1} {
spawn -open [open [infifoname $pid] r]
set in $spawn_id
spawn -open [open [outfifoname $pid] w]
set out $spawn_id
fifo_pair_r
超级会员免费看
订阅专栏 解锁全文
55

被折叠的 条评论
为什么被折叠?



