BASH:在后台运行script.sh并将该实例的pid输出到文件?

时间:2015-02-25 01:18:01

标签: linux bash shell stdout pid

我确定这可能是一个可耻的愚蠢问题,但感觉就像我已经完成了两圈关于流程管理,输出重定向等事情的网络,但是我很难挣扎到理解这一切就足以实现我的目标。

本质上:

我想在后台运行一个shell脚本(在调用时传递一些参数);并在运行时,将该实例的pid写入指定的文件。

./offtimer.sh device1 10 &

当然在后台运行脚本,并将该实例的pid输出到屏幕;我想把这个号码放到一个文件中(例如,device1.pid)。

我知道(通过阅读以及试验和错误,我保证!)

./offtimer.sh device1 10 & > device1.pid

不是有效的语法;但是,尽管我已经阅读了线索,但我无法找到一种方法。

真诚地感谢任何帮助!

[R

3 个答案:

答案 0 :(得分:1)

您可以使用$!访问最后一个子进程ID。

./offtimer.sh device1 10 &
echo $! > device1.pid

答案 1 :(得分:0)

./ offtimer.sh device1 10> device1.pid&

或者,您可以将其写入脚本中的文件,而不是将其输出到stdout。

答案 2 :(得分:0)

$!是最后一个后台流程的ID。

./offtimer.sh device1 10 &
echo $! > device1.pid