bash 中执行的命令的 PID

bash 中执行的命令的 PID

我需要一个 linux / unix 命令来执行另一个命令并将其执行的命令的 PID 写入文件...有这样的命令吗?

我并不是在寻找任何将进程置于后台并利用 shell var 的方案$!

例子:

假设我要查找的命令是execwritepid。我需要能够调用:

execwritepid -e "/usr/bin/script -f sometext.log" -f /var/log/script.pid

这样 PIDscript -f sometext.log就被写入/var/log/script.pid

script是我正在执行的命令。

根据 Daniel Pittman 的回答,明确的建议是:

bash -c 'echo $$ > /var/log/script.pid && exec /usr/bin/script -f sometext.log'

答案1

你可以用这段代码做你想做的事:

echo $$ > /var/log/script.pid && exec /usr/bin/script

exec用另一个进程替换当前进程 - 这意味着它保留当前的 ​​pid。

如果您希望父脚本继续运行,可以将其包装起来:

bash -c 'echo $$ && exec /usr/bin/script'

这将在新的 shell 中运行子命令,记录 PID,然后用其他进程替换自身。

相关内容