我的问题与这个问题非常相似,只是我的后台进程是从脚本启动的。我可能做错了什么,但是当我尝试这个简单的例子时:
#!/bin/bash
set -mb # enable job control and notification
sleep 5 &
睡眠后台命令完成时,我从未收到通知。但是,如果我直接在终端中执行相同的操作,
$ set -mb
$ sleep 5 &
$
[1]+ Done sleep 5
我看到了我期望的输出。
我在cygwin上使用bash。我猜这可能与输出指向的位置有关,但尝试各种输出重定向,我并没有更接近。
编辑:所以我有更多关于原因的信息(感谢 jkramer),但仍在寻找方法。如何获得从脚本启动的后台进程已终止的“推送”通知?将 PID 保存到文件并轮询不是我想要的。