我试图获取我运行的进程的 pid,setsid
它应该像这样在后台运行:
test.sh:
#/bin/bash
setsid nohup ./my_program &
echo $!
如果我运行./test.sh
它将打印一个my_program
进程的pid,这正是我所需要的。但是,如果像这样在我的 shell 中一个一个地运行这个命令:
$ setsid nohup ./my_program &
$ echo $!
它会给我一个setsid
命令的pid(或者可能是别的东西,但它几乎总是给我my_program
一个负一的pid)。
这里发生了什么?为什么我自己在终端中运行的命令结果与test.sh
脚本的结果不同?
顺便说一句,您可能知道我从 setid 开始并且需要在后台运行的一些简单的过程方法吗?