小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

shell 中 父進(jìn)程 子進(jìn)程 即異步執(zhí)行

 ala咪s 2017-08-16

異步執(zhí)行

有時我們希望同時執(zhí)行多項(xiàng)任務(wù),這其中涉及到父腳本以及多個子腳本的加載問題,子腳本可以在父腳本運(yùn)行時執(zhí)行其他額外的任務(wù)。但是,當(dāng)一系列腳本以這種方式運(yùn)行時,保證父腳本與子腳本的協(xié)調(diào)一致就會是一個問題。試想下這樣一種情況,如果父腳本與子腳本互相依賴,一個腳本必須等待另一個腳本任務(wù)完成才能繼續(xù)自己的任務(wù)。

針對以上情形,bash提供了一個內(nèi)置的命令來幫助管理異步執(zhí)行。wait命令可以讓父腳本暫停,直到指定的進(jìn)程(比如子腳本)結(jié)束。

wait命令

下面通過兩個例子,演示wait命令的使用:

#!/bin/bash

#
# 異步執(zhí)行(wait)使用樣例-父腳本
#

echo "父腳本:啟動子腳本.."
./async-child &

# 通過將shell參數(shù) $! 賦給pid變量,以記錄子進(jìn)程的進(jìn)程ID
pid=$!  

echo "父腳本:子腳本(PID=${pid})已啟動"

echo "父腳本:繼續(xù)執(zhí)行中.."
sleep 2

echo "父腳本:暫停執(zhí)行,等待子腳本執(zhí)行完畢.."
wait ${pid}

echo "父腳本:子腳本已結(jié)束,父腳本繼續(xù).."
echo "父腳本:父腳本執(zhí)行結(jié)束。腳本退出!"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

下面是子腳本:

#!/bin/bash

#
# 異步執(zhí)行(wait)使用樣例-子腳本
#

echo "子腳本:正在運(yùn)行.."
sleep 5
echo "子腳本:子腳本結(jié)束。腳本退出!"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

腳本執(zhí)行,產(chǎn)生如下輸出:

[fbap:/home/fbap/usertmp]>./async-parent.sh
父腳本:啟動子腳本..
父腳本:子腳本(PID=42620)已啟動
父腳本:繼續(xù)執(zhí)行中..
子腳本:正在運(yùn)行..
父腳本:暫停執(zhí)行,等待子腳本執(zhí)行完畢..
子腳本:子腳本結(jié)束。腳本退出!
父腳本:子腳本已結(jié)束,父腳本繼續(xù)..
父腳本:父腳本執(zhí)行結(jié)束。腳本退出!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多