鱼C论坛

 找回密码
 立即注册
查看: 2410|回复: 10

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

[复制链接]
发表于 2021-1-8 15:01:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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


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

  1. import os
  2. os.system("nohup /opt/bin/python3 /usr/local/apps/dashboard/apps/python/chuli.py")
复制代码


但是一运行,随着a.py的退出,另外那个chuli.py也一起退出了,无法保持在后台,请问有什么办法解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-8 15:11:37 | 显示全部楼层
  1. import os
  2. os.system("/opt/bin/python3 /usr/local/apps/dashboard/apps/python/chuli.py &")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-8 15:19:01 | 显示全部楼层
本帖最后由 tryhi 于 2021-1-8 15:26 编辑

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



你把nohup给删掉这是可以启动,但是,只要我关闭SSH,程序就退出了,目的是想关闭SSH连接之后,程序依然在运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

        这就是 Linux 后台启动程序的方法啊,通过这个方法启动的后台进程不会随着 shell 窗口的退出而退出,你这是个 Python 编的 demon 程序?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

不太明白 demon 程序是什么,我那个程序是监听一个端口,当这个端口发送消息过来时,记录下信息,并处理信息数据出完进行返回,有点像一个http服务
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-8 15:31:00 | 显示全部楼层
因为目前处理正在使用阶段,但是又一直不停的改,所以经常要进去结束进程,替换修改后的py文件,然后重新在SSH里面启动,每次输命令很麻烦,想做个能快速重启的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-8 15:31:33 | 显示全部楼层
      daemon 就是守护进程,一般的服务器进程都是 daemon 进程。那你用前台方式试过了吗?保证程序启动后,不会自己退出?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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,然后关闭掉,然后就不管,就一直用,直到下一次修改时才需要重启,基本有空我就一直在修改,一修改就要重启,如果不改的它一直在运行的,只要不关机,就一直在运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-8 15:36:16 | 显示全部楼层
然后现在我还打算加多几个独立的程序,也是用这种方式,这一多起来就特别麻烦,我就想再做一个用来管理这些程序的程序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-8 22:10:07 | 显示全部楼层
这不用pm2?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-9 16:00:46 | 显示全部楼层

仅仅重启,无需用牛刀吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 00:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表