如何实现shell 自动启动一个进程 并将进程id保存到变量
时间: 2023-06-04 21:02:34 浏览: 176
中?
可以使用shell脚本的方式实现自动启动一个进程并将进程id保存到变量中。具体步骤如下:
1.在脚本中先定义一个变量,如pid。
2.使用启动进程的命令,如nohup命令,将要启动的进程加入到后台运行,并将进程id保存到pid变量中,如:
nohup your_process_name &
pid=$!
其中,$!表示执行后台命令的最后一个进程的进程id。
3.如果需要在后续的操作中使用进程id,只需要调用pid变量即可。例如:
kill $pid
表示杀死进程id为pid的进程。
相关问题
shell执行一个进程时同时获取它的进程号
在Shell中,你可以使用特殊变量`$!`来获取最后一个后台进程的PID(进程ID)。这个变量会保存最后一个在后台执行的命令的进程ID。
以下是一个示例:
```shell
#!/bin/bash
your_command & # 执行你的命令,并使其在后台运行
pid=$! # 获取最后一个后台进程的PID
echo "进程号为: $pid"
```
在这个示例中,`your_command`是你要执行的命令,通过在命令末尾添加&,使其在后台运行。然后使用`$!`获取该后台进程的PID,并将其存储在变量`pid`中。最后,使用`echo`命令打印出进程号。
通过以上方式,你可以在Shell脚本中同时执行一个进程,并获取它的进程号。
shell脚本怎么获取一个子进程的进程ID
在 shell 脚本中可以使用 `$!` 来获取最后一个在背景运行的子进程的进程 ID。例如,当在脚本中启动一个进程时,可以使用 `&` 符号将其放入后台运行,并使用 `$!` 来获取其 PID,示例如下:
```shell
#!/bin/bash
# 启动一个子进程并将其放入后台运行
./my_program &
# 获取子进程的 PID
child_pid=$!
echo "子进程的 PID 为:$child_pid"
```
注意,当在脚本中启动多个进程时,`$!` 只能获取最后一个在背景运行的子进程的 PID。如果需要获取多个子进程的 PID,可以将它们分别放入后台运行,并使用不同的变量来保存它们的 PID。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)