启动监控进程 目前 Linux 下推荐哪个的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
nodejsexpress
V2EX    Linux

启动监控进程 目前 Linux 下推荐哪个的?

  •   nodejsexpress 2023-11-23 11:34:17 +08:00 3250 次点击
    这是一个创建于 687 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前自己用的比较多的是

    • 自带的 systemctl
    • python 的 supervisor
    • node 的 pm2

    一般现在用什么比较多?

    23 条回复    2023-11-25 10:14:22 +08:00
    zreateny
        1
    zreateny  
       2023-11-23 11:49:42 +08:00
    supervisor 或者 watchdog
    nigerunndayo
        2
    nigerunndayo  
       2023-11-23 12:52:15 +08:00
    有哪位前辈能根据使用经验说一下这几个的区别吗?
    cnleon
        3
    cnleon  
       2023-11-23 13:06:05 +08:00
    systemd 吧,操作系统自带的
    Maboroshii
        4
    Maboroshii  
       2023-11-23 13:36:19 +08:00
    systemd 吧,系统自带的还是稳点。
    IvanLi127
        5
    IvanLi127  
       2023-11-23 13:39:53 +08:00 via Android
    systemd 感觉挺 ok 的
    话说现在不都上容器化了嘛
    OceanBreeze
        6
    OceanBreeze  
       2023-11-23 14:31:53 +08:00
    @Maboroshii
    @IvanLi127

    systemd 可以批量起多个进程吗?谢谢。
    Maboroshii
        7
    Maboroshii  
       2023-11-23 15:59:11 +08:00 via Android
    @OceanBreeze 一个进程定义一个服务应该就可以
    nevermoreluo
        8
    nevermoreluo  
       2023-11-23 16:18:50 +08:00
    三个都用过,以下是个人感觉
    易用性上 pm2 好,端口复用, 程序多开,日志分割统统都可以用 pm2 解决
    稳妥上还是 systemd
    supervisor ,咋说呢,好几年前用过,稳定也挺稳定的,配置完之后也没太多改动,但是状态查看/管理,确实比 PM2 差很多
    sdsaaeee
        9
    sdsaaeee  
       2023-11-23 17:55:29 +08:00
    docker
    libook
        10
    libook  
       2023-11-23 18:00:37 +08:00
    已经用容器很多年了。

    不用容器的话,pm2 对开发友好一些,部署的话 systemd 更通用。
    libook
        11
    libook  
       2023-11-23 18:03:19 +08:00
    @OceanBreeze #6 可以了解以下 systemd 的 target 机制。systemd 功能挺强大的,可以调整启动顺序和依赖关系,比如服务 A 依赖服务 B ,可以通过配置来让 systemd 启动 B 成功后再启动 A 。
    OceanBreeze
        12
    OceanBreeze  
       2023-11-23 18:53:30 +08:00 via iPhone
    @libook 这个我是知道的。我的意思是,假如我有一组进程,要启动 100 个。systemd 可以写一个 service 文件来完成吗?
    xiaoz
        13
    xiaoz  
       2023-11-23 19:34:58 +08:00 via Android
    @OceanBreeze #12 ,你这种直接写 shell 得了
    aloxaf
        14
    aloxaf  
       2023-11-23 19:45:46 +08:00   1
    @OceanBreeze #12 可以,systemd 支持模板
    itechify
        15
    itechify  
    PRO
       2023-11-23 20:24:08 +08:00 via Android
    portainer stack 写 docker compose 文件,快的飞起
    LoliconInside
        16
    LoliconInside  
       2023-11-23 21:12:17 +08:00
    如果不打算容器化就用 systemd
    如果愿意容器化,Docker Compose
    如果觉得 Compose 起容器不好管理,Kubernetes
    yanqiyu
        17
    yanqiyu  
       2023-11-23 21:31:23 +08:00   1
    @OceanBreeze 写成模板 unit ,类似于 [email protected] 然后启动的时候就 @ 0-99 就启动了 100 个
    OceanBreeze
        18
    OceanBreeze  
       2023-11-23 21:33:15 +08:00 via iPhone
    @aloxaf 感谢,学习到了
    ragnaroks
        19
    ragnaroks  
       2023-11-23 22:52:23 +08:00
    用 systemd 的最多,虽然有很多人不喜欢,但是已经成为事实上的标准。

    supervisor 则在容器大行其道的现在回光返照了一把,因为常用的容器实现都不支持单 container 多顶级 process 。
    n1cogrv
        20
    n1cogrv  
       2023-11-23 22:54:23 +08:00
    @OceanBreeze #18 补充一下 @nodejsexpress
    https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html#:~:text=Example%C2%A03.%C2%A0Top%20level%20drop%2Dins%20with%20template%20units

    再加上 systemd 的 service 文件里面可以内嵌很多特殊变量,`%i`也仅仅是其中一个用来绑在`@`后面的 specifier ,还有很多变量可以在里面使用。

    毕竟不选择 docker 那一套的话,自然你也会觉得 pm2 、supervisor 也不够稳妥。systemd 自带的那一堆 on-failure 、Requires 、PartOf 、Conflicts 考虑了很多种[强|弱|半]依赖情况以及一大堆 Condition 。只要肯吃透点文档,可用性会比 docker 那一套强一些。

    具体可以看一下
    https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html
    julyclyde
        21
    julyclyde  
       2023-11-24 18:37:19 +08:00
    你如果用 supervisorD 和 pm2 ,那他俩自身的安全又由谁来保障呢

    追根溯源,必须托管给 PID1 才可以
    julyclyde
        22
    julyclyde  
       2023-11-24 18:38:54 +08:00
    @ragnaroks 我觉得在容器内启动多个的首先需要检讨自己的需求是不是错了
    然后再说用啥技术实现

    如果最后发现需求没错,在容器内,supervisorD (作为 PID1 )确实比 systemd 轻很多
    比那种“把 整个操作系统 迁移到容器里”的做法好多了
    ragnaroks
        23
    ragnaroks  
       2023-11-25 10:14:22 +08:00
    @julyclyde 很多镜像是 AIO 的,比如常见的 qbittorrent + ariang + aria2c + nginx 这一套的下载套件打包成一个镜像
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5147 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 09:18 PVG 17:18 LAX 02:18 JFK 05:18
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86