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

BASH: Run script.sh in background and output that instance's pid to file?

我确定这可能是一个可耻的愚蠢问题,但感觉我已经在网上浏览了两圈,阅读了有关进程管理、输出重定向等的内容,但我正在努力理解它都足以实现我想要的。

本质上:

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

./offtimer.sh device1 10 &

当然 运行 在后台执行脚本,并将该实例的 pid 输出到屏幕;我只想将该数字放入文件中(例如 device1.pid)。

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

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

语法无效;但是尽管我读了一个又一个线程,但我还是想不出办法。

衷心感谢您的帮助!

R

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

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

./offtimer.sh 设备 1 10 > device1.pid &

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

$!是最后一个后台进程IS。

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