【发布时间】:2021-08-29 01:51:05
【问题描述】:
想象一下 Docker。您可以以分离模式(守护程序)启动容器,它将在后台运行。当第一个容器在后台运行时,您可以创建一个以分离模式启动的新容器,它也将在后台运行。您可以使用docker ps 查看正在运行的容器。此命令输出有关正在运行的容器等的表格。
我正在编写一个与 Docker 具有相同概念的程序(不是关于容器,而是关于守护进程)。
假设程序是abc,要创建一个新的守护进程,我必须执行start 命令:
$ abc start
我们可以用同样的命令再次创建一个新进程:
$ abc start
这一次,我想列出所有守护进程(很好地格式化为表格)。
这是所需的输出:
$ abc start
abc: Program is starting...
$ abc start
abc: Program is starting...
$ abc list
+---------------------+
| Name | ID |
|===========|=========|
| Daemon #1 | 33454 |
+---------------------+
| Daemon #2 | 42344 |
+---------------------+
(表格的格式不重要)
我的问题是,如何将守护进程存储在某种容器中(而不是在 docker 容器的上下文中。例如,一个数组)?我想到的一件事是我可以将有关守护进程的信息存储在一个文件中,当用户想要列出守护进程时,程序可以从该文件中读取并显示它。但是,我不确定这种方法。我也不能使用数组,因为它不会从执行到执行保留其值。
(顺便说一句,用户不应该执行ps 命令。我想包含有关进程的额外信息,例如我的程序会给每个守护进程一个唯一的ID。)
【问题讨论】:
-
可以使用redis。但是文件也应该可以正常工作,具体取决于您计划使用这些数据的复杂性和方式
标签: c bash unix process daemon