1
lambdafate 2021-03-27 13:13:05 +08:00 5
强推 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 2021-03-27 13:21:26 +08:00 via Android
最简单就是你说的这个,然后依次是 screen-tmux-supervisor-systemd 等等
|
8
hertzry 2021-03-27 13:27:18 +08:00 via Android
感觉 7#说的有道理。
|
9
sunhuawei 2021-03-27 13:28:08 +08:00
进程管理器 pm2 挺不错的
|
10
ClericPy 2021-03-27 13:32:22 +08:00 2
按优先级推荐, 场景不一样
systemd supervisord, 如果有时间调度 azkaban, airflow tmux 还是看点 linux 基础吧... |
12
imes 2021-03-27 13:45:14 +08:00 2
又到了我来安利 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
lidashuang 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 1
我喜欢 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 。
前者适合长期使用,后者适合临时后台运行 |
26
yucongo 2021-03-27 15:21:05 +08:00
tmux 或 pm2
喜欢折腾的话还可以装 tmux-resurrect 插件。 |
27
koast 2021-03-27 15:24:40 +08:00 via Android
@imes 这种配置文件是挺好看的,不过我挺好奇这么多键名,是每次写的时候都要看看文档或者参考一下已有的配置文件?
|
28
chenqh 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 2021-03-27 17:00:07 +08:00 via iPhone
哪位老哥知道哪里有教程讲 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
epicSoldier 2021-03-27 17:18:04 +08:00
exit 退出试一下,不要直接关闭连接窗口
|
40
realpg 2021-03-27 18:48:17 +08:00
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 1
|
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
ShienPro 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)
|
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 大法好
|