V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
azev
V2EX  ›  问与答

Linux 下常驻后台运行的程序,怎么弄比较好?

  •  
  •   azev · 2019-12-20 23:49:12 +08:00 · 2862 次点击
    这是一个创建于 1806 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想把做好的一个 python 程序常驻后台,查了下有不少是做成守护进程,但有点疑问,这个是惯用做法吗?
    我看有些程序直接就是 nohup ... & 一下就完事了。

    大家通常会怎么做呢?包括其他比如 java 程序,go 程序之类
    12 条回复    2019-12-21 11:47:08 +08:00
    Trim21
        1
    Trim21  
       2019-12-20 23:50:24 +08:00 via Android
    写个 systemd 的 unit 文件
    azev
        2
    azev  
    OP
       2019-12-20 23:51:50 +08:00
    @Trim21
    嗯 这是个不错的选择
    iamwho
        3
    iamwho  
       2019-12-20 23:55:35 +08:00
    短时间常驻,tmux
    xiri
        4
    xiri  
       2019-12-21 00:02:35 +08:00 via Android
    短时间常驻我喜欢用 screen、tmux 之类的,因为可以随时切过去查看状态,长时间或涉及到开机自启的话还是老老实实写 systemd 脚本吧
    Trim21
        5
    Trim21  
       2019-12-21 00:10:10 +08:00 via Android
    如果用 docker 的话也可以做成 docker,restart=always…
    Sanko
        6
    Sanko  
       2019-12-21 00:18:16 +08:00 via Android
    nohup + crontab
    mikuazusa
        7
    mikuazusa  
       2019-12-21 00:28:08 +08:00
    pm2,还带异常重启和简单管理
    ClericPy
        8
    ClericPy  
       2019-12-21 00:31:49 +08:00
    别的都淘汰了, systemd 已经一统江湖

    当然了, 一些进程管理系统配合优雅的 WebUI 也挺好的

    比如:

    用过四五年 Python supervisor, 那 web 对中文极不友好, 只有 tail 强制配 U8 才能看中文, 想魔改它的代码都没法改, 那 web 实现的代码太脏了... 如果重新写个 UI, 我情愿写 systemd 的. 看了替代品 https://alternativeto.net/software/supervisor/ 也没列几个靠谱的

    试用过 PM2, 终端的 UI 还是简洁清晰, 不过后来懒得装 nodejs, 就弃了

    想用 Circus 来着, 号称 Python3 怎么怎么友好, 我感觉对我很不友好

    如果有什么 golang 版本的就舒服了, 安装方便, 性能也不错最好. 现在基本只用 systemd 了
    weixiangzhe
        9
    weixiangzhe  
       2019-12-21 00:36:52 +08:00 via Android
    pm2 确实很方便,还带监控好东西
    tt67wq
        10
    tt67wq  
       2019-12-21 10:05:33 +08:00
    systemd
    seakingii
        11
    seakingii  
       2019-12-21 10:33:38 +08:00
    nohup ... & 没有异常重启,没有开机自动运行, 简单的不重要 的可以偶尔用下

    我一般用 supervisor ,
    pm2 偶尔用
    现在一般用 docker 了.docker 也有守护的功能
    zbttl
        12
    zbttl  
       2019-12-21 11:47:08 +08:00
    nohup+init.d
    supervisor
    systemd
    pm2

    推荐中间那两个,第一个太简单最后一个资源占用太大把我吓退了
    supervisor 配置文件写起来简单但你要关掉哪个自启的话就麻烦了
    systemd 相反(不过听说太复杂经常被社区抵制来着)

    tmux 和 screen 也能用但个人认为不是个好主意(管理不善容易乱),除非你要看日志
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2671 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:11 · PVG 13:11 · LAX 21:11 · JFK 00:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.