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

2019-12-20 23:49:12 +08:00
 azev
想把做好的一个 python 程序常驻后台,查了下有不少是做成守护进程,但有点疑问,这个是惯用做法吗?
我看有些程序直接就是 nohup ... & 一下就完事了。

大家通常会怎么做呢?包括其他比如 java 程序,go 程序之类
2756 次点击
所在节点    问与答
12 条回复
Trim21
2019-12-20 23:50:24 +08:00
写个 systemd 的 unit 文件
azev
2019-12-20 23:51:50 +08:00
@Trim21
嗯 这是个不错的选择
iamwho
2019-12-20 23:55:35 +08:00
短时间常驻,tmux
xiri
2019-12-21 00:02:35 +08:00
短时间常驻我喜欢用 screen、tmux 之类的,因为可以随时切过去查看状态,长时间或涉及到开机自启的话还是老老实实写 systemd 脚本吧
Trim21
2019-12-21 00:10:10 +08:00
如果用 docker 的话也可以做成 docker,restart=always…
Sanko
2019-12-21 00:18:16 +08:00
nohup + crontab
mikuazusa
2019-12-21 00:28:08 +08:00
pm2,还带异常重启和简单管理
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
2019-12-21 00:36:52 +08:00
pm2 确实很方便,还带监控好东西
tt67wq
2019-12-21 10:05:33 +08:00
systemd
seakingii
2019-12-21 10:33:38 +08:00
nohup ... & 没有异常重启,没有开机自动运行, 简单的不重要 的可以偶尔用下

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

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

tmux 和 screen 也能用但个人认为不是个好主意(管理不善容易乱),除非你要看日志

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/630968

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX