我正在这样运行命令:
# Run
if [[ $1 == A ]]; then
CMDD=(sudo ${path}/my_exe -O ${fileA})
elif [[ $1 == B ]]; then
CMDD=(sudo ${path}/my_exe -O ${fileB})
fi
"${CMDD[@]}" & pid=$!
但是当我在同一个脚本中回显 pid 时:
echo "pid: " $pid
2345
我没有得到我刚刚运行的进程的 pid,顺便说一句,它有 2 个 pid,因为我使用 sudo 运行它:
2346 2347
因此,如果我在脚本中运行此命令,它不会杀死我想杀死的进程:
sudo kill -9 $pid
我做了一些研究,但我还找不到以干净的方式终止我创建的进程的最佳方法。你有什么建议?
示例脚本:
#!/bin/bash
# Test
CMDD=(sudo sleep $1 )
"${CMDD[@]}" & pid=$!
echo "pid: " $pid
exit