2

我有一个通过 nohup 运行命令的 bash 脚本,我需要脚本中的进程 ID。

我试过这个:

#!/bin/bash
nohupResult=$((nohup mycommand > nohup.out &) 2>&1)
echo $nohupResult
exit 0

但是$nohupResult是空的。

我也试过这个:

nohupResult=`nohup mycommand > nohup.out &`

$nohupResult也为空。

如果我nohup mycommand > nohup.out &在 shell 中运行命令,我会得到一些输出,例如:

[1] 447019

但是我怎样才能在脚本中获取进程 ID?

任何帮助将非常感激。

4

2 回答 2

7

最后一个后台作业的 pid 在$!

nohup mycommand &
pid=$!
于 2013-05-22T13:51:52.817 回答
3

你可以只使用:

echo $!

这应该返回最后启动的后台进程的 PID。

于 2013-05-22T13:52:15.777 回答