tryhi 发表于 2021-1-8 15:01:25

linux下如何通过一个py去启动并后台运行另外一个py

通常情况下我是这样启动的,用SSH登录,然后运行命令
nohup /opt/bin/python3 /usr/local/apps/dashboard/apps/python/chuli.py

然后关闭SSH,这样这个py就一直在后台运行了,现在想要在SSH下面运行另外一个a.py,来执行这个

import os
os.system("nohup /opt/bin/python3 /usr/local/apps/dashboard/apps/python/chuli.py")

但是一运行,随着a.py的退出,另外那个chuli.py也一起退出了,无法保持在后台,请问有什么办法解决

jackz007 发表于 2021-1-8 15:11:37

import os
os.system("/opt/bin/python3 /usr/local/apps/dashboard/apps/python/chuli.py &")

tryhi 发表于 2021-1-8 15:19:01

本帖最后由 tryhi 于 2021-1-8 15:26 编辑

jackz007 发表于 2021-1-8 15:11


import os
import subprocess
print("""1、结束chuli.py进程
2、启动chuli.py进程""")
a = input('输入选项:')
if a == '1':
    os.system("ps -ef | grep chuli.py | grep -v grep | awk '{print $1}' | xargs kill")
elif a == '2':
    os.system("/opt/bin/python3 /usr/local/apps/dashboard/apps/python/chuli.py &")


你把nohup给删掉这是可以启动,但是,只要我关闭SSH,程序就退出了,目的是想关闭SSH连接之后,程序依然在运行

jackz007 发表于 2021-1-8 15:25:09

tryhi 发表于 2021-1-8 15:19
还是一样,立马退出,查不到进程,服务也没有启动,结束进程倒是挺正常的

      这就是 Linux 后台启动程序的方法啊,通过这个方法启动的后台进程不会随着 shell 窗口的退出而退出,你这是个 Python 编的 demon 程序?

tryhi 发表于 2021-1-8 15:28:34

jackz007 发表于 2021-1-8 15:25
这就是 Linux 后台启动程序的方法啊,通过这个方法启动的后台进程不会随着 shell 窗口的退出而退 ...

不太明白 demon 程序是什么,我那个程序是监听一个端口,当这个端口发送消息过来时,记录下信息,并处理信息数据出完进行返回,有点像一个http服务

tryhi 发表于 2021-1-8 15:31:00

因为目前处理正在使用阶段,但是又一直不停的改,所以经常要进去结束进程,替换修改后的py文件,然后重新在SSH里面启动,每次输命令很麻烦,想做个能快速重启的

jackz007 发表于 2021-1-8 15:31:33

      daemon 就是守护进程,一般的服务器进程都是 daemon 进程。那你用前台方式试过了吗?保证程序启动后,不会自己退出?

tryhi 发表于 2021-1-8 15:33:42

本帖最后由 tryhi 于 2021-1-8 15:34 编辑

jackz007 发表于 2021-1-8 15:31
daemon 就是守护进程,一般的服务器进程都是 daemon 进程。那你用前台方式试过了吗?保证程序启动后 ...

这个程序从开始运行到现在已经一个多月了,我都是用SSH输入nohup /opt/bin/python3 /usr/local/apps/dashboard/apps/python/chuli.py,然后关闭掉,然后就不管,就一直用,直到下一次修改时才需要重启,基本有空我就一直在修改,一修改就要重启,如果不改的它一直在运行的,只要不关机,就一直在运行

tryhi 发表于 2021-1-8 15:36:16

然后现在我还打算加多几个独立的程序,也是用这种方式,这一多起来就特别麻烦,我就想再做一个用来管理这些程序的程序

kogawananari 发表于 2021-1-8 22:10:07

这不用pm2?

tryhi 发表于 2021-1-9 16:00:46

kogawananari 发表于 2021-1-8 22:10
这不用pm2?

仅仅重启,无需用牛刀吧
页: [1]
查看完整版本: linux下如何通过一个py去启动并后台运行另外一个py