我正在尝试使用 --fork 在后台启动一个进程,它开始了,但我也想使用 PID 终止进程。为此,我想使用
将 fork 进程的 PID 存储在 .pid 文件中echo $!> pid 文件
但这不起作用,只是给出一个空字符串。我也附上了代码片段。请帮忙。 提前致谢!
#!/bin/bash
start() {
mongod --shardsvr --dbpath /user/JCBLivelink/MongoDB/shardA --port 27020 --logpath /user/JCBLivelink/MongoDB/shardA.log --logappend --fork
echo $!>/user/JCBLivelink/MongoDB/shardA.pid
}
最佳答案
$!
只有当 shell 是创建后台进程的时候才有效。在这种情况下,mongod
正在执行此操作,而 shell 对此一无所知。
也就是说,您可以将 --pidfilepath
指定给 mongod
让它为您做这件事
关于linux - $!不适用于最后一个 fork 进程的 PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44800971/