gpt4 book ai didi

c 守护进程运行时 shell 参数

转载 作者:行者123 更新时间:2023-11-30 19:42:36 25 4
gpt4 key购买 nike

我会开发一个可以通过 shell 命令控制的守护进程。为了澄清起见,我们假设守护进程将具有三个功能(我想要的调用):

$ myDaemon start #什么都不做,只是守护进程。 exit(0) 成功,exit(1) 否则

$ myDaemon stop #要求守护进程停止。 exit(0) 成功,exit(1) 否则

$ myDaemon doSomething #询问守护进程。 exit(0) 成功,exit(1) 否则(假设守护进程执行 int a = 0; exit(0); 只是为了查看代码,对特殊内容不感兴趣)

有人可以向我展示一个如何生成这个守护进程的示例吗(好吧,启动真的很简单......)?

谢谢大家!

最佳答案

如果您确实希望守护进程完成所有工作,那么一种方法是编写一个终端程序,通过某种 IPC 技术将所有命令从终端传递到守护进程。

您所要做的就是:

  • 编写一个终端程序, fork 然后执行守护进程以及命令行参数(如使用管道的文件描述符)。
  • 然后,终端程序在 while 循环中从终端获取输入,并通过使用的 IPC 机制将它们传递给守护进程。

编辑

主流程算法

main()
{
> fork the daemon with some initial arguments(if any)
while(1)
{
> take inputs from the shell
> parse the input and pass it to daemon(via preferred mechanism)
> if(exit condition) kill->daemon and break
}
}

对于守护进程

main() (or function_name() if no execl)
{
> initialize the arguments and IPC mechanism
while(1)
{
> read command(can use simple integer/character commands)
> perform requested action or break if exit command
}
> proper exit(closing file descriptors,etc.)
}

关于c 守护进程运行时 shell 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31476625/

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