linux – 在前台启动进程时,在Shell脚本中获取进程ID

shell程序中,我想启动一个程序并获取其PID并保存在临时文件中.但是在这里我将在前台启动程序,并且在进程处于运行状态之前不会退出shell

例如:

#!/bin/bash

 myprogram &
 echo "$!"  > /tmp/pid

这工作正常,我能够得到启动过程的pid.但如果我在前期启动该程序,我想知道如何获得pid

例如:

#!/bin/bash

myprogram       /// hear some how i wan to know the PID before going to next line

解决方法

正如我在上面评论的那样,因为你的命令仍然在前台运行,你不能在同一个shell中输入新命令并转到下一行.

但是,当此命令正在运行并且您想要从不同的shell选项卡/窗口进程获取此程序的进程ID时,请使用如下所示的pgrep:

pgrep -f "myprogram"
17113 # this # will be different for you :P

编辑:根据您的评论或是否可以在后台启动程序并获取进程ID,然后等待脚本,直到该进程退出?

是的,可以使用wait pid命令完成,如下所示:

myprogram &
mypid=$!
# do some other stuff and then
wait $mypid

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...