在Bash脚本中怎么关闭文件描述符
发布网友
发布时间:2022-04-23 12:56
我来回答
共1个回答
热心网友
时间:2023-10-14 10:28
在Bash脚本中怎么关闭文件描述符今晚在写一个Bash脚本的时候碰到一个问题,这个脚本是用来启动一个程序B的,而这个脚本又被另一个程序A调用,结果发现新启动的B进程中有很多A进程打开的文件描述符(如Socket)。因此决定在脚本中将它们关闭,因为为了简单起见,我在A程序中使用了system()来启动该脚本。增加了关闭文件描述符的脚本如下: #!/bin/shcd $(dirname $0) exit 1exec 3>&-exec 4>&-./rbtunnel $@ sleep 1这里的关键点就是关闭文件描述的代码:exec fd>&- 也可以是:exec fd<&- 其中fd为文件描述符的数字,而文件描述符在linux下可以通过lsof -c rbtunnel来查看。
如何关闭所有已经打开的文件描述符
增加了关闭文件描述符的脚本如下: #!/bin/shcd $(dirname $0) exit 1exec 3>&-exec 4>&-./rbtunnel $@ sleep 1这里的关键点就是关闭文件描述的代码:exec fd>&- 也可以是:exec fd<&- 其中fd为文件描述符的数字,而文件描述符在linux下可以通过lsof -c rbtunnel来查看。
Linux中,shell脚本如何使用信号机制去控制线程的开启关闭
第26行:表示在脚本运行过程中,如果接收到Ctrl+C中断命令,则关闭文件描述符1000的读写,并正常退出 exec 1000>&-;表示关闭文件描述符1000的写 exec 1000<&-;表示关闭文件描述符1000的读 trap是捕获中断命令 第27~29行:第27行,创建一个管道文件 第28行,将文件描述符1000与FIFO进行绑定,<读的...
Shell怎么逐行读取文件
首先我们用脚本(脚本见附件)生成一个70000行的文件,文件位置在/scripts/bigfile。然后通过下面的脚本来测试各个方法的执行效率,脚本很简单,不再解释。代码如下:!/bin/bashFILENAME="$1"TIMEFILE="/tmp/loopfile.out" $TIMEFILESCRIPT=$(basename $0)function usage(){echo -e "\nUSAGE: $SCRIP...
linux bash shell 多线程脚本无法并处处理命令
" exit 1 else cmdfile=$1 jobnum=`cat $cmdfile|grep -v "^#"|grep -v "^[[:space:]]#"|wc -l` line=`cat $cmdfile|wc -l` fifi#创建管道文件,并将其文件描述符设置为6,同时以读写的方式打开它tmp_fifo="tmp$$.fifo"mkfifo ${tmp_fifo}exec 6<> ${tmp...
求Bash Shell脚本,判定文件是否存在。
file 文件为字符特殊文件为真-b file 文件为块特殊文件为真-s file 文件大小非0时为真-t file 当文件描述符(默认为1)指定的设备为终端时为真### 含条件选择的shell脚本对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类...
linux中设计一个shell脚本程序可以接受命令行输入的参数执行相应的菜单...
当需要在执行过程中获得执行脚本人员的输入,使用read命令 1)基本读取 read命令接受标准输入或其他文件描述符输入。读入后将数据放入 一个标准变量中。-p 允许在read命令行中直接指定一个提示。可以指定多个变量,也可以不指定将放置在reply环境变量中)2)计时 使用-t指定一个计时器,计时数满还未输入...
文件描述符是什么
Linux管理用户可以在etc/security/limits.conf配置文件中设置他们的文件描述符极限,如下例所示。softnofile1024hardnofile4096系统级文件描述符极限还可以通过将以下三行添加到/etc/rc.d/rc.local启动脚本中来设置:#Increasesystem-widefiledescriptorlimit.echo4096>/proc/sys/fs/file-maxecho16384>/proc/...
求Bash Shell脚本,判定文件是否存在。
file 当文件描述符(默认为1)指定的设备为终端时为真 含条件选择的shell脚本 对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算,包括比较运算、判断文件是否存在等。基本的if条件命令选项有:-eq —比较两个参数是否相等(...
反弹shell基础
第五种选了一个新的文件描述符196,道理类似。对于第三种bash shell,exec已经在前面提到过可以持续连接,后面的关键点如下:从文件中依次读取每一行,将其赋值给 line 变量(其他也可),之后在循环中对line进行操作。这里不再从文件中读取,而是通过管道符对攻击者机器上输入的命令进行依次执行,并且将...
Broken pipe一般都是什么原因导致的错误
很多种原因:1、网络通讯中,连接意外中断,比如被人拔了网线;2、进程间通讯中管道断裂,譬如管道某一端进程僵死;3、文件描述符终端,多见于*Nix,当退出登录时,虚拟终端断开,导致文件描述符1和2消失;