这是我的问题 - 我正在尝试编写一个小的包装脚本,在调用 Xorg 时添加一个命令行参数(我无权访问调用者的源代码。)它看起来很简单,但我现在正在运行的问题into 是调用者正在等待USR1
来自 Xorg 的信号。从 XSERVER 手册页:
SIGUSR1
该信号的使用与上述任何一种都完全不同。当服务器启动时,它会检查它是否继承了 SIGUSR1 作为 SIG_IGN 而不是通常的 SIG_DFL。在这种情况下,服务器在设置各种连接方案后向其父进程发送一个 SIGUSR1。Xdm 使用此功能来识别何时可以连接到服务器。
我以为我可以简单地捕获信号并转发它:
#!/bin/bash
parent_trap(){
echo sending USR1 to $PPID &> /tmp/wrapper.log
kill -USR1 $PPID
}
trap "parent_trap" USR1
Xorg $@ (extra stuff) &
wait
但当然这不起作用,因为脚本本身是由调用者忽略USR1
. 我认为我需要做的是让脚本停止忽略信号,但也要以某种方式启动 Xorg 并USR1
忽略(以触发手册页中的行为。)
这在 Bash/其他脚本语言中是否可行?出于几个原因,我希望避免编译解决方案,但这并非不可想象。也有可能我完全在考虑这个错误,并且还有其他方法可以USR1
从 Xorg 到调用者。