在bash中执行的命令的PID

我需要一个linux / unix命令来执行另一个命令,并将它执行的命令的PID写入一个文件中…是否有这样一个命令?

我不寻找任何scheme,把进程放在后台,并利用壳var $!

例:

假设我正在查找的命令是execwritepid 。 我需要能够打电话给:

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

这样script -f sometext.log的PID script -f sometext.log被写入/var/log/script.pid

script是我正在执行的命令。

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

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

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

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

exec将当前进程replace为另一个 – 这意味着它保留当前的PID。

如果你想让你的父母脚本继续下去,你可以包装:

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

这将在新的shell中运行子命令,loggingPID,然后用其他进程replace自己。