Linux 在Bash腳本中怎么關(guān)閉文件描述符的實(shí)例
Linux 在Bash腳本中怎么關(guān)閉文件描述符的實(shí)例
在寫一個(gè)Bash腳本的時(shí)候碰到一個(gè)問題,這個(gè)腳本是用來啟動(dòng)一個(gè)程序B的,而這個(gè)腳本又被另一個(gè)程序A調(diào)用,結(jié)果發(fā)現(xiàn)新啟動(dòng)的B進(jìn)程中有很多A進(jìn) 程打開的文件描述符(如Socket)。因此決定在腳本中將它們關(guān)閉,因?yàn)闉榱撕唵纹鹨?,我在A程序中使用了system()來啟動(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下可以通過lsof -c rbtunnel來查看。
如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Linux?du命令實(shí)現(xiàn)根據(jù)文件或者文件夾大小排序輸出
Linux是一個(gè)強(qiáng)大的操作系統(tǒng),廣泛用于服務(wù)器和個(gè)人計(jì)算機(jī),本文主要來和大家聊聊如何利用du命令實(shí)現(xiàn)根據(jù)文件或者文件夾大小排序輸出,感興趣的可以了解下2023-09-09解決VirtualBox中Ubuntu 14.04屏幕分辨率不能設(shè)置的問題
下面小編就為大家?guī)硪黄鉀QVirtualBox中Ubuntu 14.04屏幕分辨率不能設(shè)置的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧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