Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从bash脚本中执行的进程将PID输出到文件?_Bash_Mongodb_Ubuntu_Process_Pid - Fatal编程技术网

从bash脚本中执行的进程将PID输出到文件?

从bash脚本中执行的进程将PID输出到文件?,bash,mongodb,ubuntu,process,pid,Bash,Mongodb,Ubuntu,Process,Pid,我有一个启动服务器进程的简单bash脚本。我想将服务器进程的pid输出到一个文件,pid.txt。在进行了一些快速搜索之后,我提出了这种方法,但它似乎给出了bash脚本的pid,而不是从脚本执行的服务器进程。注意:--fork是我的服务器进程作为守护进程运行以将数据输出到单独的日志文件所必需的,基于此,我怀疑这是造成问题的原因,希望有办法解决这个问题 #! /bin/bash ./mongo-linux64-202/mongod --fork & pid=$! printf "%s\

我有一个启动服务器进程的简单bash脚本。我想将服务器进程的pid输出到一个文件,
pid.txt
。在进行了一些快速搜索之后,我提出了这种方法,但它似乎给出了bash脚本的pid,而不是从脚本执行的服务器进程。注意:
--fork
是我的服务器进程作为守护进程运行以将数据输出到单独的日志文件所必需的,基于此,我怀疑这是造成问题的原因,希望有办法解决这个问题

#! /bin/bash

./mongo-linux64-202/mongod --fork &
pid=$!

printf "%s\n" "$pid" > pid.txt
我可否建议:

#! /bin/bash

./mongo-linux64-202/mongod --pidfilepath ./pid.txt --fork &
源自Mongo帮助:

mongod --help

尽管先看看
mongod
是否愿意以某种方式报告其pid。

pid=$(jobs-p | tail-n1)到底做了什么?如果多个mongo进程在同一台机器上运行,这是否有效?尝试过,但它不会创建文件<代码>#/bin/bash./mongodb-linux-x86_64-2.0.2/bin/mongod--pidfilepath pid.txt--fork--dbpath/opt/mongo/data/db1/dbs--port 33479--logpath/opt/mongo/data/db1/log/db1.log--logappend&尝试使pidfilepath更加明确:./pid.txt(或者更好的/home/raffi/pid.txt或者其他一些合适的绝对路径)。有可能mongod将相对路径解释为相对于PWD以外的其他目录。是的,这就是问题所在,必须更加明确,更改为
--pidfilepath/opt/mongo/pid.txt
,感谢您的帮助!使用--fork将进程置于后台,因此您永远不需要&(但是您确实需要将它作为--logpath参数指定给日志文件的路径)
./mongo-linux64-202/mongod --fork &
pid=$(jobs -p | tail -n 1)