美团刚发了一篇文章,是讲 Service Mesh 的(文章在此,https://tech.meituan.com/2021/03/08/octo-2.0-service-mesh.html ) 。这里面有个容器内运行的组件叫 LEGO-Agent https://sm.ms/image/NXrZc8zvFoJBMA6,我比较关心这个进程充当容器的父进程( 1 号进程)是怎么做到管理子进程的,难道就用命令行去做吗?比如杀一个子进程就用 kill,启动子进程就用./xxx.sh start 这么原始的方法吗?有什么更高级的控制进程的方式吗?我们的需求是写个程序作为 1 号进程去管理其他进程,包括启动一些进程,停止一些进程,并且能暴露出 API 供其他平台调用,不知道大家有什么想法吗?
1
AstroProfundis 2021-03-16 16:02:44 +08:00
有个这个东西可能可以参考 https://github.com/just-containers/s6-overlay
|
2
wangkai123 2021-03-16 16:12:32 +08:00
systemd ?
|
3
zhoudaiyu OP @AstroProfundis #1 十分感谢,但是一时没弄懂这个东西是做啥的。。
@wangkai123 #2 我看了 docker 官网推荐了 supervisord,systemd 和这个功能是类似的,但是我们可能还要操作一下暴露出的 API,systemd 好像没有( supervisord 有一些 API ) |
4
generic 2021-03-16 16:15:49 +08:00
很多选择。比如 supervisord 。
你想直接在容器里跑 systemd 也可以啊。podman 默认支持。docker 需要设置一下。 |
6
generic 2021-03-16 16:26:50 +08:00
@zhoudaiyu systemd 有(dbus) api 。systemctl 就是通过它操作 systemd 的。
但是,显然 supervisord 简单得多。 |