shell脚本怎么获取一个子进程的进程ID
时间: 2023-07-13 17:35:45 浏览: 385
在 shell 脚本中可以使用 `$!` 来获取最后一个在背景运行的子进程的进程 ID。例如,当在脚本中启动一个进程时,可以使用 `&` 符号将其放入后台运行,并使用 `$!` 来获取其 PID,示例如下:
```shell
#!/bin/bash
# 启动一个子进程并将其放入后台运行
./my_program &
# 获取子进程的 PID
child_pid=$!
echo "子进程的 PID 为:$child_pid"
```
注意,当在脚本中启动多个进程时,`$!` 只能获取最后一个在背景运行的子进程的 PID。如果需要获取多个子进程的 PID,可以将它们分别放入后台运行,并使用不同的变量来保存它们的 PID。
相关问题
写一个shell脚本,获取tomcat的进程id,如果这个id存在,就杀掉这个进程
可以使用以下命令来获取tomcat进程的id:
```
ps -ef | grep tomcat | grep -v grep | awk '{print $2}'
```
如果返回的id存在,可以使用以下命令来杀掉进程:
```
kill -9 <进程id>
```
请注意,这些命令可能需要以root用户身份运行。
shell脚本获取对应进程号
在Linux环境中,可以使用ps命令获取进程信息,并通过grep命令筛选出特定进程的信息。在shell脚本中,可以使用以下命令获取对应进程号:
pid=$(ps -ef |grep "进程名" |grep -v grep |awk '{print $2}')
上述命令中,ps -ef可以列出所有进程信息,grep "进程名"可以筛选出对应进程的信息,grep -v grep可以排除grep自身的进程信息,awk '{print $2}'可以获取进程号。
获取到进程号后,可以根据需求使用kill命令杀死进程或其他操作。
阅读全文