gpt4 book ai didi

调用 "start"启动程序,调用 "stop"关闭 C 中的当前实例

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:54 28 4
gpt4 key购买 nike

我用 C 编写了一个简单的服务器,并希望调用它的功能与调用其他 C 守护程序的功能相同(例如使用 ./ftpd start 调用它并使用 ./ftpd stop 关闭该实例)。显然我遇到的问题是我不知道如何获取正在运行的程序的当前实例。我可以很好地解析选项(使用 getopt/optarg),但目前,./my-program stop 只是启动一个新实例,而不是调用 ./my-program start 启动它。

我想这样做的原因是因为另一个程序将向我的服务器发出停止信号,所以像 ./my-program stop 这样的调用非常简单,它可以停止服务器循环并关闭所有打开的 fd。谢谢!

是否可以在 C 程序本身中执行此操作,还是通常由外部处理?

最佳答案

使用“停止”参数运行时,您将始终运行一个单独的进程。您需要找到正在运行的守护进程并向其发送信号以停止它。当你的守护进程启动时(选项“开始”),你可能想将它的 pid 存储在某个地方,这样当它以“停止”选项启动时,它可以检索守护进程的 pid 并向它发送一个信号来停止它。您还可以解析进程表以找到您的守护进程,但这会更复杂。

关于调用 "start"启动程序,调用 "stop"关闭 C 中的当前实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3996848/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com