
1 lambdafate 2021-03-27 13:13:05 +08:00 强推 screen 命令, 谁用谁知道 |
2 privapps 2021-03-27 13:16:08 +08:00 nohup 之后,用 disown %% 再试试 |
3 ByteCat 2021-03-27 13:16:21 +08:00 写成服务运行,懒的话直接 screen |
4 mmtromsb456 2021-03-27 13:18:20 +08:00 关键词进程守护,相对更加稳定并且在服务意外关闭后可以自动重启 可以选用一般发行版自带的 systemd,注册一个 systemd 服务进行管理即可,或者环境中已经存在 python 对额外添加包不敏感的话也可以用 supervisor. 如果没有这些要求的话,简单的使用 screen 命令创建一个 deattach 的 shell 来执行你的命令即可 |
5 johnsona 2021-03-27 13:20:42 +08:00 via iPhone screen |
6 Tink PRO 最简单就是你说的这个,然后依次是 screen-tmux-supervisor-systemd 等等 |
8 hertzry 2021-03-27 13:27:18 +08:00 via Android 感觉 7#说的有道理。 |
9 rebang 2021-03-27 13:28:08 +08:00 进程管理器 pm2 挺不错的 |
10 ClericPy 2021-03-27 13:32:22 +08:00 按优先级推荐, 场景不一样 systemd supervisord, 如果有时间调度 azkaban, airflow tmux 还是看点 linux 基础吧... |
12 cmos 2021-03-27 13:45:14 +08:00 又到了我来安利 systemd 的时候了 按照下面的来,注意一下文件路径即可。 ``` [Unit] Description=Python Service After=multi-user.target [Service] WorkingDirectory=/path User=root Type=idle ExecStart=/usr/bin/python3 /path/python.py Restart=always [Install] WantedBy=multi-user.target ``` |
13 G2bN4dbX9J3ncp0r 2021-03-27 13:49:11 +08:00 supervisord systemd |
14 yeqizhang 2021-03-27 13:52:04 +08:00 via Android 我用 nohup 没毛病,参考一下 7 楼意见 |
15 aheadlead 2021-03-27 13:53:27 +08:00 via iPhone 打个 docker image 不香吗 |
16 ipwx 2021-03-27 13:57:21 +08:00 supervisor |
17 poterliu 2021-03-27 13:59:36 +08:00 Java 启动是这样的,可以参考一下: nohup java -jar 应用名 > 日志文件名>&1 & |
18 wtks1 2021-03-27 14:06:03 +08:00 via Android 命令前加 setsid |
19 ylz 2021-03-27 14:17:33 +08:00 byobu 也很好用 |
21 seakingii 2021-03-27 14:18:57 +08:00 我喜欢 supervisor |
22 7gugu 2021-03-27 14:20:35 +08:00 via iPhone screen |
23 mingff258 2021-03-27 14:33:07 +08:00 如果是在 VS Code 里面运行 nohup 的话,是会有问题的,使用普通 ssh 客户端执行就行了。 |
24 CodeCodeStudy 2021-03-27 14:34:04 +08:00 |
25 imldy 2021-03-27 14:34:57 +08:00 systemd 或 tmux 。 前者适合长期使用,后者适合临时后台运行 |
27 koast 2021-03-27 15:24:40 +08:00 via Android @imes 这种配置文件是挺好看的,不过我挺好奇这么多键名,是每次写的时候都要看看文档或者参考一下已有的配置文件? |
28 simple2025 2021-03-27 15:50:12 +08:00 单机, docker 怎么 pull 呀,registry 放哪里? |
29 WildCat 2021-03-27 16:24:16 +08:00 tmux? tmux attach #0? |
30 troilus 2021-03-27 16:28:29 +08:00 screen 是一个非常有用的命令,提供从单个 SSH 会话中使用多个 shell 窗口(会话)的能力。当会话被分离或网络中断时,screen 会话中启动的进程仍将运行,你可以随时重新连接到 screen 会话。如果你想运行一个持久的进程或者从多个位置连接到 shell 会话,这也很方便。 |
31 SenLief 2021-03-27 16:35:15 +08:00 7 楼的没有问题啊。我的 ddns 就是这样扔到后台的。很长时间了也没挂。 |
33 chinvo 2021-03-27 16:40:31 +08:00 via iPhone 虚拟 tty 法 screen tumux byobu 服务法 systemd init.d |
34 2379920898 2021-03-27 16:42:35 +08:00 nohup ./程序名 & 这样来用就 OK 了。。我发现这么多评论,都没有说道点子上,除了 32 楼 |
35 zhuweiyou 2021-03-27 16:48:21 +08:00 screen pm2 |
36 zhoudaiyu PRO 哪位老哥知道哪里有教程讲 systemd 的 service 文件里面的配置字段啊 |
37 ychost 2021-03-27 17:10:59 +08:00 tmux 用起来美滋滋 |
38 Macv1994 2021-03-27 17:17:11 +08:00 supervisor 也挺不错的 还支持 web 端 如果需要可以参考我写的博客 https://2dogz.cn/blog/article/3/ |
39 Rainwater 2021-03-27 17:18:04 +08:00 exit 退出试一下,不要直接关闭连接窗口 |
40 realpg PRO screen 就完了 |
41 MOONLIGHTT 2021-03-27 19:00:34 +08:00 tmux+1 |
42 ronman 2021-03-27 19:03:23 +08:00 via Android |
44 FransicZhang 2021-03-27 19:44:58 +08:00 via Android pm2 它不香嘛 |
46 nicevar 2021-03-27 20:02:50 +08:00 大概率是程序写得有问题 |
48 nutting 2021-03-27 21:07:55 +08:00 via Android 看看父进程是啥就能分析出来为啥挂不住了 |
49 yanfany 2021-03-27 21:24:14 +08:00 用 screen |
50 dapan24678 2021-03-27 21:27:42 +08:00 个人感觉你还是先看看,不后台运行能跑起来不,很多时候是项目启动时报异常退出了,因为后台运行,异常信息也看不见,确定项目能跑起来了再用这个命令 |
51 cheneydog 2021-03-27 21:48:39 +08:00 |
52 tomari 2021-03-27 22:05:06 +08:00 tmux 或者 screen,deep learning 做 train 和 interfere 的时候常用。。 |
54 v2beta 2021-03-27 22:29:55 +08:00 |
55 xiaochong0302 2021-03-27 22:36:28 +08:00 via iPhone 关键看你 test.py 里面是不是一次执行就结束了,你写个死循环试试 |
56 leavic 2021-03-27 23:04:02 +08:00 supervisor 就很好用 |
57 lithiumii 2021-03-27 23:13:12 +08:00 via Android @chenqh Gitlab 可以免费私有镜像,另外其实可以把镜像直接当文件拷来拷去 (docker save 和 load) |
58 simple2025 2021-03-27 23:50:20 +08:00 @lithiumii 镜像文件太大了,动不动几百 M |
59 oisadfo 2021-03-28 00:32:40 +08:00 应该是你的程序有 BUG,自己退出了 |
60 irytu 2021-03-28 00:35:03 +08:00 via iPhone 守护进程吧 不过最好弄下 logging 方便看问题 https://pypi.org/project/python-daemon/ |
61 DaGongRen001 2021-03-28 10:50:21 +08:00 nohup XXX &可能会因为环境变量问题导致运行失败,在敲第二下回车时就能看出来退出状态码是否为 0 |
62 www5070504 2021-03-28 12:06:02 +08:00 nohup 还要注意错误的标准错误的重定向问题 |
63 litel 2021-03-28 13:00:58 +08:00 pm2 大法好 nodejs 的时候就在用,py 也适用 |
64 julyclyde 2021-03-28 14:55:51 +08:00 nohup 忽略 HUP 信号并重定向 & 放后台 按说这俩都用上之后,退出 ssh 应该是不会导致程序中断的啊…… 虽然不是正规做法,但是应该可以成功使用 |
65 Ealrang 2021-03-28 15:26:53 +08:00 pm2 非常舒服 |
66 jeeyong 2021-03-28 15:29:31 +08:00 我是 pm2, 跑了 5 年了快. web 系统 nodejs, 业务服务是 python 都是用 pm2 |
67 julyclyde 2021-03-28 17:35:22 +08:00 哦。我大概猜到了 后期版本的 systemd 在用户注销的时候会把残留进程也都关闭 还是请使用正确的 systemd-run |
68 SkyGuardian 2021-03-28 19:54:20 +08:00 nohup & 是最简单的,但实际上不能用于部署服务 之前有一个 python 脚本跑了几个月没事,有天上去发现因为系统的原因 terminated 了 所以要正经部署的话,自己写个 systemd service,就算脚本遇到意外退出了,还可以自动重启 |
69 lylh1987 2021-03-30 11:16:23 +08:00 pm2 大法好 |