我的問題與此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