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
我确定这可能是一个可耻的愚蠢问题,但感觉我已经在网上浏览了两圈,阅读了有关进程管理、输出重定向等的内容,但我正在努力理解它都足以实现我想要的。
本质上:
我想在后台 运行 一个 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