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

发布于 2025-01-08 09:38:32 字数 444 浏览 0 评论 0原文

我有这个简单的 bash 脚本来启动服务器进程。我想将服务器进程的pid输出到文件pid.txt。经过对SO的一些快速搜索后,我想出了这种方法,但它似乎给了我bash脚本的pid,而不是从脚本执行的服务器进程。注意:我的服务器进程需要 --fork 才能作为守护进程运行以将数据输出到单独的日志文件,并且我怀疑这导致了这里的问题,基于此 上一个问题,希望有办法解决这个问题。

#! /bin/bash

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

printf "%s\n" "$pid" > pid.txt

I've got this simple bash script that starts a server process. I want to output the pid of the server process to a file, pid.txt. After some quick searching on SO, I came up with this approach, but it seems to give me the pid of the bash script, not the server process executed from the script. Note: the --fork is required for my server process to run as a daemon to output data to a separate log file, and I suspect that's causing the issue here based on this previous SO question, hoping there's a way around this.

#! /bin/bash

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

printf "%s\n" "$pid" > pid.txt

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

奶茶白久 2025-01-15 09:38:33
./mongo-linux64-202/mongod --fork &
pid=$(jobs -p | tail -n 1)

不过首先看看 mongod 是否愿意以某种方式报告它的 pid。

./mongo-linux64-202/mongod --fork &
pid=$(jobs -p | tail -n 1)

Though look first whether mongod is willing to report its pid somehow.

小鸟爱天空丶 2025-01-15 09:38:32

我可以建议:

#! /bin/bash

./mongo-linux64-202/mongod --pidfilepath ./pid.txt --fork &

源自 Mongo 帮助:

mongod --help

Might I suggest:

#! /bin/bash

./mongo-linux64-202/mongod --pidfilepath ./pid.txt --fork &

derived from Mongo help:

mongod --help
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文