Dav*_* S. 311 shell bash process background-process
我想要一个这样的shell脚本:
my-app &
echo $my-app-pid
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何获取刚刚执行的命令的pid。
我知道我可以只使用jobs -p my-app命令来grep pid。但是如果我想多次执行shell,这个方法就行不通了。因为工作规范是不明确的。
enz*_*tib 411
最后执行的命令的PID在$!shell变量中:
my-app &
echo $!
Run Code Online (Sandbox Code Playgroud)
Edu*_*omo 82
获取PID:
#!/bin/bash
my-app &
echo $!
Run Code Online (Sandbox Code Playgroud)
保存PID在变量中:
#!/bin/bash
my-app &
export APP_PID=$!
Run Code Online (Sandbox Code Playgroud)
将所有实例保存PID在文本文件中:
#!/bin/bash
my-app &
echo $! >>/tmp/my-app.pid
Run Code Online (Sandbox Code Playgroud)
将输出、错误和PID分离的文件保存:
#!/bin/bash
my-app >/tmp/my-app.log 2>/tmp/my-app.error.log &
echo $! >>/tmp/my-app.pid
echo "my-app PID's: $(cat /tmp/my-app.pid)"
Run Code Online (Sandbox Code Playgroud)