我的问题与此one非常相似,只不过我的后台进程是从脚本开始的。我做错了什么,但是当我尝试这个简单的例子:如何在脚本的后台作业完成时收到通知?
#!/bin/bash
set -mb # enable job control and notification
sleep 5 &
我从来没有收到通知的睡眠背景命令完成时。但是,如果我直接在终端执行同样的操作,我会看到我期望的输出。
我在cygwin上使用bash。我猜测它可能与输出指向的地方有关,但尝试各种输出重定向,我没有接近。
编辑:所以我有更多关于为什么(thx到jkramer)的信息,但仍然在寻找如何。如何获得“推送”通知,即从脚本开始的后台进程已终止?将PID保存到文件并进行轮询并不是我要找的。
谢谢,jkramer - 非常具有说服力。所以我需要做一些不同的事情,但是使用wait命令否定了将子进程发送到后台的要点。我想调用脚本(可以选择背景子进程),然后继续使用同一个终端。如果它在等待,那么终端将不可用,对吧?因此,如果我稍后保存PID以供参考,那么我仍然需要定期轮询以查看它是否已完成,而我希望将通知推送给我。 – 2010-05-09 01:28:08