Linux 在Bash腳本中怎么關(guān)閉文件描述符的實(shí)例
Linux 在Bash腳本中怎么關(guān)閉文件描述符的實(shí)例
在寫(xiě)一個(gè)Bash腳本的時(shí)候碰到一個(gè)問(wèn)題,這個(gè)腳本是用來(lái)啟動(dòng)一個(gè)程序B的,而這個(gè)腳本又被另一個(gè)程序A調(diào)用,結(jié)果發(fā)現(xiàn)新啟動(dòng)的B進(jìn)程中有很多A進(jìn) 程打開(kāi)的文件描述符(如Socket)。因此決定在腳本中將它們關(guān)閉,因?yàn)闉榱撕?jiǎn)單起見(jiàn),我在A程序中使用了system()來(lái)啟動(dòng)該腳本。
增加了關(guān)閉文 件描述符的腳本如下:
#!/bin/sh cd $(dirname "$0") || exit 1 exec 3>&- exec 4>&- ./rbtunnel "$@" & #sleep 1
這里的關(guān)鍵點(diǎn)就是關(guān)閉文件描述的代碼:exec fd>&- 也可以是:exec fd<&- 其中fd為文件描述符的數(shù)字,而文件描述符在Linux下可以通過(guò)lsof -c rbtunnel來(lái)查看。
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Linux?du命令實(shí)現(xiàn)根據(jù)文件或者文件夾大小排序輸出
Linux是一個(gè)強(qiáng)大的操作系統(tǒng),廣泛用于服務(wù)器和個(gè)人計(jì)算機(jī),本文主要來(lái)和大家聊聊如何利用du命令實(shí)現(xiàn)根據(jù)文件或者文件夾大小排序輸出,感興趣的可以了解下2023-09-09解決VirtualBox中Ubuntu 14.04屏幕分辨率不能設(shè)置的問(wèn)題
下面小編就為大家?guī)?lái)一篇解決VirtualBox中Ubuntu 14.04屏幕分辨率不能設(shè)置的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05Linux Shell腳本系列教程(六):數(shù)組和關(guān)聯(lián)數(shù)組
這篇文章主要介紹了Linux Shell腳本系列教程(六):數(shù)組和關(guān)聯(lián)數(shù)組,本文講解了什么是數(shù)組和關(guān)聯(lián)數(shù)組、定義打印普通數(shù)組、定義打印關(guān)聯(lián)數(shù)組等內(nèi)容,需要的朋友可以參考下2015-06-06Shell腳本對(duì)文件中的行、單詞、字符進(jìn)行迭代輸出示例
這篇文章主要介紹了Shell腳本對(duì)文件中的行、單詞、字符進(jìn)行迭代輸出示例,本文講解了迭代文件中的每一行、迭代一行中的每一個(gè)單詞、迭代一個(gè)單詞中的每一個(gè)字符等內(nèi)容,需要的朋友可以參考下2014-11-11