在Linux中,我正在寻找一种方法,让一个进程通过阻塞来发出信号

sea*_*and 1 linux events ipc blocking

我正在寻找一个简单的事件通知系统:

  1. 进程A阻塞直到它被...通知

  2. 进程B,触发进程A.

如果我在Win32中这样做,我可能会使用事件对象('A'块,当'B'执行SetEvent时).我需要一些非常快速和脏的东西(更喜欢脚本而不是C代码).你会建议什么样的东西?我想知道文件咨询锁,但它似乎很乱.其中一个进程必须主动打开文件才能保持锁定.

Ser*_*rge 5

快又脏?

然后使用fifo.它是一个命名管道.进程A从fifo的FD读取阻塞模式.进程B在需要时写入它.

确实很简单.

这是bash脚本实现:

计划A:

#!/bin/bash

mkfifo /tmp/event
while read -n 1 </tmp/event; do 
    echo "got message";
done
Run Code Online (Sandbox Code Playgroud)

方案B:

#!/bin/bash
echo -n "G" >>/tmp/event
Run Code Online (Sandbox Code Playgroud)

首先启动脚本A,然后在另一个shell窗口中重复启动脚本B.