Answers:
最后执行的命令的PID在$!
shell变量中:
my-app &
echo $!
/bin/sh -c 'echo $$>/tmp/my.pid && exec program args' &
– sysfault 2010年11月24日,14:28
echo $!
my-app & myVar=$! ; fg
。fg
再次将过程推向前台。然后,我可以稍后打印,echo $myVar
并且我很确定my-app已经完成。
得到PID
:
#!/bin/bash
my-app &
echo $!
保存PID
在变量中:
#!/bin/bash
my-app &
export APP_PID=$!
将所有实例保存PID
在文本文件中:
#!/bin/bash
my-app &
echo $! >>/tmp/my-app.pid
将输出,错误和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)"
my-app
完成实例(甚至更糟的是其PID稍后被重用)会在文件中包含错误信息。我认为此答案并不能真正为现有的答案增加太多价值
sleep 4 | grep INVALID & export MY_PID=$!; fg; echo $MY_PID returned with $?
`
main &
获取PID的方法吗?
尝试类似
pidof my_app >> /tmp/my_app.pid