shell等待特定进程pid退出的方法
Bash 内置了 wait 命令用于等待进程的退出,并返回其退出码:
wait [-n] [n ...]Wait for each specified child process and return its termination status.
Each n may be a process ID or a job specification; if a job spec is given, all processes in that job's pipeline are waited for.
If n is not given, all currently active child processes are waited for, and the return status is zero.
If the -n option is supplied, wait waits for any job to terminate and returns its exit status.
If n specifies a non-existent process or job, the return status is 127.
Otherwise, the return status is the exit status of the last process or job waited for.
但是,从说明来看,wait只能等待当前shell的子进程。如果等待的进程不是当前进程的子进程,则会报告如下错误:
$ wait 1
-bash: wait: pid 1 is not a child of this shell
但是,很多时候我们需要等待任意的进程,那么,wait就不适用了。则需要其他办法。
等待任意进程退出的办法
tail
用法:tail --pid=$pid -f /dev/null
。
注意:这种方法不适用于 macOS,因为其下的 tail 不支持--pid
参数。但可以用来自 GNU 的 gtai
l。
哈哈,可能谁也没有想到 tail 竟然还有--pid
这个神奇的参数。
tail 的帮助说明:
--pid=PIDwith -f, terminate after process ID, PID dies-f, --follow[={name|descriptor}]output appended data as the file grows;an absent option argument means 'descriptor'
lsof
用法:lsof -p $pid +r 1 &>/dev/null
。
lsof 用于枚举打开的文件。所以这个命令要求进程有打开文件。哪个进程那么极端会没有打开文件呢?
- 参考
Wait for a process to finish
shell等待特定进程pid退出的方法相关推荐
- nodejs进程异常退出处理方法
nodejs进程异常退出处理方法 参考文章: (1)nodejs进程异常退出处理方法 (2)https://www.cnblogs.com/mengff/p/10207154.html (3)http ...
- shell获取当前进程pid和上一个进程pid
$$ 获取当前shell的进程号(PID) $! 执行上一个指令的PID 转载于:https://www.cnblogs.com/aggavara/archive/2012/11/16/27733 ...
- java 添加等待时间_Java中线程等待特定时间的最有效方法 - java
我知道这个问题here,但是我有一个稍微不同的问题.如果我希望自己通过各种Thread方法(而不是通过实用程序类或Quartz)手动编码某个线程在特定时间的运行,那么最有效(就开销而言)进行编码. 我 ...
- python获取子进程pid_使用python获取进程pid号的方法
保存为.py文件后 运行脚本在后面添加进程名称即可 比如:python proinfo.py qq 即可获取QQ的进程信息,注意不区分大小写 代码如下: #-*- encoding:UTF-8 -*- ...
- linux shell 脚本 父子进程 等待子进程,SHELL父子进程分析
导言 本节将就shell交互(脚本执行)过程中涉及子进程(subprocess)以及子SHELL(subshell)的部分,配以实例,进行说明.将详细讨论如下问题:subprocess和subshel ...
- 《Linux进程概念,进程创建退出等待替换,环境变量等基础操作 ---总结》
前言 Linux系统的进程概念,进程状态,以及操作创建进程,还有环境变量及相关指令,程序地址空间等一些知识的梳理,将自己的理解总结如下,希望和各位一起进步,一起学习. 以下是本篇文章正文内容. 文章目 ...
- Python 技术篇-通过进程名称、PID杀死windows进程的两种方法,获取当前运行程序的pid
方法一: 利用 os 杀死进程. import os# 通过进程名称杀死进程 os.system('taskkill /f /im %s' % 'python.exe')# 通过pid杀死进程 os. ...
- shell中用grep查找并且不输出_Linux中用 grep查找特定进程,屏蔽grep进程本身(也就是不出现grep --color=auto)...
2020年6月8日09:03:12更新 一些细节. 日常操作linux 中,通常在使用 ps命令后 用管道连接 查询特定进程会显示 grep进程本身. 如下: 1 [root@ecs-linux-by ...
- Ubuntu应用---强制退出应用方法(kill 进程 或者 退出窗口)
Ubuntu应用---强制退出应用方法(kill 进程 或者 关闭窗口) 注意 一. 查看进程 二. kill 单一进程 三. kill 某一应用的所有进程 四. 强制关闭窗口(死进程) 注意 系统: ...
最新文章
- Nature会议:驾驭植物微生物组(21年10月22-24,在线,优惠截止9月24日)
- Java对List对象进行排序
- BERT和ERNIE谁更强?这里有一份4大场景的细致评测
- corba中IDL接口传值中文报错问题
- 如何在两个目录中删除其中一个目录中同名文件
- 一个肯德基拖着6个“拖油瓶”的百胜中国,如何赢下中国市场?
- [Swift]LeetCode781. 森林中的兔子 | Rabbits in Forest
- mysql 核心目录
- 使用Fiddler监控网易云笔记客户端向服务器定时发送的sync请求
- 计算机网络实验ifconfig,《计算机网络》操作系统网络配置实验.doc
- python 小海龟鼠标画图_Python小海龟画图
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·011【视图和索引】
- 浏览器异步加载和同源策略
- Windows系统下将目录挂载为一个磁盘并分配盘符
- Android View框架总结(一)
- 安装mongodb以及设置为windows服务 详细步骤
- (3)【路径平滑篇】路径平滑与拟合方向
- 专业程序员开发-老狼孩插件懒人精灵版
- 鲁大师手机HTML5性能,鲁大师5月新机性能排行:同样是线上手机,跑分相差30万?...
- 2019考研 报名条件是什么?