【问题标题】:Run your own python script in background在后台运行您自己的 python 脚本
【发布时间】:2016-05-31 07:35:23
【问题描述】:

我有自己的 python 库,当我这样做时会被广泛安装

python setup.py install

在 python 项目目录中,它也将可执行文件复制到 bin 中,但基本上我正在这样做,它可以作为服务运行,我应该能够将它包含在 upstart 或 monit 类型的 unix 库中.我的进程名称是watchman,当我这样做watchman & 使其成为守护进程时,它并不完全使其成为守护进程。我在使它成为守护进程时做错了什么。我是这方面的初学者,任何人都可以真正帮助我。

【问题讨论】:

  • & 不守护进程;只会将其移至后台。后台进程和守护进程有很大的不同,因为守护进程的期望是拥有一个不能通过退出终端会话来终止的线程。

标签: linux unix python monit


【解决方案1】:

& 用于在后台运行进程。它仍然非常依赖于您运行它的终端 (tty)。

这些是使进程成为守护进程的基本步骤:

  1. fork 进程并杀死其父进程,使其成为孤立进程(由 init 直接处理)
  2. 通过使用setsid() 分配新会话,将其从当前进程组中分离出来
  3. 现在exec你的守护进程
  4. 再次分叉,使其与运行它的终端分离
  5. 现在重新加载文件描述符(因为它在与终端分离时丢失了它们),例如stdinstdout

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多