我正在尝试使用--fork在后台启动一个进程,它会启动,但我也想使用PID终止进程。为此,我想使用
将分叉进程的PID存储在.pid文件中 echo $!> pidfile
但这不起作用,只是给一个空字符串。我也附上了代码片段。请帮忙。 提前谢谢!
#!/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
}
答案 0 :(得分:2)
$!
仅在shell创建后台进程时才有效。在这种情况下,mongod
正在执行此操作,而shell对此一无所知。
也就是说,您可以指定--pidfilepath
到mongod
让它为您执行此操作