shell识别刚刚启动的进程PID
时间: 2023-11-10 10:05:15 浏览: 37
可以使用`$!`来获取刚刚启动的进程的PID。`$!`是Shell特殊变量,表示上一个后台进程的PID。例如,如果你在后台启动一个进程,可以使用以下命令获取该进程的PID:
```shell
command &
echo $!
```
其中,`command`是你要启动的进程命令。`&`表示将该命令放入后台运行。`echo $!`会输出该进程的PID。
相关问题
shell脚本启动时输出进程的pid号
你可以在shell脚本中使用特殊变量`$$`来获取当前进程的PID号。可以使用`echo $$`命令来输出该PID号。例如:
```shell
#!/bin/bash
echo "My PID is $$"
```
当你运行该脚本时,它会打印出类似于以下内容的输出:
```
My PID is 1234
```
其中1234是当前进程的PID号。
shell脚本杀进程并启动
以下是一个示例的shell脚本,用于杀死进程并启动程序:
```shell
#!/bin/bash
# 杀死进程
kill_process() {
process_name=$1
pid=$(pgrep -f $process_name)
if [ -n "$pid" ]; then
echo "Killing process: $process_name"
kill -9 $pid
else
echo "Process $process_name not found"
fi
}
# 启动程序
start_program() {
program_path=$1
log_file=$2
echo "Starting program: $program_path"
nohup $program_path >> $log_file 2>&1 &
}
# 调用函数杀死进程
kill_process "program_name"
# 调用函数启动程序
start_program "/path/to/program" "/path/to/log/file"
```
请注意,你需要将"program_name"替换为你要杀死的进程的名称,将"/path/to/program"替换为你要启动的程序的路径,将"/path/to/log/file"替换为你要将日志输出到的文件路径。