#! /bin/bash
NEW_DEVICE="$1"
TARGETS=$(pgrep program_name)
for proc in $TARGETS
do
kill -s SIGUSR1 $proc
done
让你的程序处理SIGUSR1
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
void wakeup(int sig) {
printf("go check /dev" );
}
int main(void) {
signal(SIGUSR1, wakeup);
while (1) {
/* if the SIGUSR1 signal is received while sleep is waiting, sleep will return*/
sleep(20);
}
return 0;
}
在 Linux 上,您可以,感谢
udev
.使用 识别您的 USB 设备
udevadm info -a /dev/yourdevice
。请参阅编写 udev 规则。根据您的设备信息,创建一个 udev 规则:
编写你的信号器程序(在我的 udev 规则中,它位于
/usr/bin/my_sampler
):让你的程序处理
SIGUSR1