写了一个 py 想让它在云服务后台运行

2021-03-27 13:09:30 +08:00
 ling516
nohup python3 test.py &
网上搜了半天是使用这个命令,但是关闭窗口后进程还是结束了
网上还说 nohup 按任意键回到 shell,再用 exit 退出,但是关闭窗口后进程还是结束了

求大佬指点
6361 次点击
所在节点    Python
69 条回复
lambdafate
2021-03-27 13:13:05 +08:00
强推 screen 命令, 谁用谁知道
privapps
2021-03-27 13:16:08 +08:00
nohup 之后,用
disown %%

再试试
ByteCat
2021-03-27 13:16:21 +08:00
写成服务运行,懒的话直接 screen
mmtromsb456
2021-03-27 13:18:20 +08:00
关键词进程守护,相对更加稳定并且在服务意外关闭后可以自动重启
可以选用一般发行版自带的 systemd,注册一个 systemd 服务进行管理即可,或者环境中已经存在 python 对额外添加包不敏感的话也可以用 supervisor.
如果没有这些要求的话,简单的使用 screen 命令创建一个 deattach 的 shell 来执行你的命令即可
johnsona
2021-03-27 13:20:42 +08:00
screen
Tink
2021-03-27 13:21:26 +08:00
最简单就是你说的这个,然后依次是 screen-tmux-supervisor-systemd 等等
676529483
2021-03-27 13:22:45 +08:00
nohuo &是可以的,我觉得应该先检查下 python3 test.py 是否会一直运行
hertzry
2021-03-27 13:27:18 +08:00
感觉 7#说的有道理。
sunhuawei
2021-03-27 13:28:08 +08:00
进程管理器 pm2 挺不错的
ClericPy
2021-03-27 13:32:22 +08:00
按优先级推荐, 场景不一样
systemd
supervisord, 如果有时间调度 azkaban, airflow
tmux

还是看点 linux 基础吧...
isSamle
2021-03-27 13:38:48 +08:00
nohup python xxx.py
imes
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
```
lidashuang
2021-03-27 13:49:11 +08:00
supervisord
systemd
yeqizhang
2021-03-27 13:52:04 +08:00
我用 nohup 没毛病,参考一下 7 楼意见
aheadlead
2021-03-27 13:53:27 +08:00
打个 docker image 不香吗
ipwx
2021-03-27 13:57:21 +08:00
supervisor
poterliu
2021-03-27 13:59:36 +08:00
Java 启动是这样的,可以参考一下:
nohup java -jar 应用名 > 日志文件名>&1 &
wtks1
2021-03-27 14:06:03 +08:00
命令前加 setsid
ylz
2021-03-27 14:17:33 +08:00
byobu 也很好用
ling516
2021-03-27 14:18:22 +08:00
@imes 那还是用 systemd

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

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

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

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

© 2021 V2EX