首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

django芹菜守护进程可以工作:它不能创建pid文件

Django芹菜守护进程是指在Django框架中使用Celery异步任务队列时,为了保证任务的持续执行,需要使用守护进程来监控和管理Celery的工作进程。它负责启动、停止和重启工作进程,并在发生异常或意外终止时重新启动它们,以确保任务的稳定运行。

守护进程通常会创建一个pid文件(进程ID文件),用于记录守护进程的进程ID。然而,根据提供的问答内容,django芹菜守护进程不能创建pid文件。

尽管无法创建pid文件,但仍然可以使用其他方式来管理和监控Celery工作进程。以下是一些可行的替代方案:

  1. 使用supervisor:Supervisor是一个常用的进程管理工具,可以用于监控和管理各种进程,包括Celery工作进程。通过配置supervisor,可以实现自动启动、停止和重启Celery工作进程,并在发生异常时进行相应处理。
  2. 使用systemd:Systemd是一种Linux系统的初始化系统和服务管理器,可以用于管理后台服务进程。通过编写systemd服务单元文件,可以实现对Celery工作进程的管理和监控。
  3. 使用其他自定义脚本或工具:您也可以编写自定义脚本或使用其他第三方工具来管理和监控Celery工作进程。例如,可以编写一个定时任务脚本,定期检查Celery工作进程是否在运行,并在需要时重新启动它们。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

守护进程

创建进程,终止父进程 这是因为守护进程是脱离终端控制的,所以要造成一种在终端里已经运行完的假象,把所有的工作都放在子进程中去完成。父进程退出后,子进程变成孤儿进程。...在子进程创建新会话 这是因为即使子进程已经变成了孤儿进程,但是始终是被父进程创建出来的,继承了父进程的会话、进程组、控制终端等等。...由于在进程运行过程中,当前目录所在的文件系统不能卸载,因此,把当前工作目录换成其他的路径,如“/”或“/tmp”等。...重设文件掩码 由于通过fork函数创建的子进程继承了父进程文件掩码,这就给该子进程使用文件带来了诸多的麻烦。因此,把文件创建掩码设置为0,可以大大增强该守护进程的灵活性。...当我们不需要的守护进程的在后台继续执行的时候,可以通过kill -9 pid来杀死。我们可以查看daemon.log文件的内容如下: ?

1.9K10

守护进程(daemon)

创建进程,终止父进程 这是因为守护进程是脱离终端控制的,所以要造成一种在终端里已经运行完的假象,把所有的工作都放在子进程中去完成。父进程退出后,子进程变成孤儿进程。...在子进程创建新会话 这是因为即使子进程已经变成了孤儿进程,但是始终是被父进程创建出来的,继承了父进程的会话、进程组、控制终端等等。...由于在进程运行过程中,当前目录所在的文件系统不能卸载,因此,把当前工作目录换成其他的路径,如“/”或“/tmp”等。...重设文件掩码 由于通过fork函数创建的子进程继承了父进程文件掩码,这就给该子进程使用文件带来了诸多的麻烦。因此,把文件创建掩码设置为0,可以大大增强该守护进程的灵活性。...结果如下: 当我们不需要的守护进程的在后台继续执行的时候,可以通过kill -9 pid来杀死。我们可以查看daemon.log文件的内容如下:

1.4K20
  • 守护进程(Daemon)

    守护进程创建 Linix 中可以调用 int daemon(int nochdir, int noclose); 函数来使程序成为一个守护进程。...具体用法可以用“男人”命令(手册命令)查询:man daemon。 通过原理我们也可以手动创建一个守护进程。...此时它可能会再申请一个控制终端,所以我们再 fork 一下,并只保留新的子进程,这样就不是会话组长了,就不能申请控制终端了。 close(fd) 之后再关闭从父进程继承的文件描述符。...umask(0) 设置文件掩码是为了不受父进程的 umask 的影响,能自由创建读写文件和目录。...chdir("/") 守护进程一般是一直执行到系统关机,在运行过程中,它所在的目录就不能卸载(unmounted)。通过将它的工作目录转移到根目录,用来的目录就允许卸载了。

    7.6K30

    WEB平台DJANGO&VUE配置部署生产环境

    yum install uwsgi-plugin-python plugins = python (加在ini配置文件中) 配置 uwsgi可以使用命令行启动,也可以使用配置文件来启动,推荐使用配置文件来启动守护进程...该值如果太小会报错 具体参数含义可以到官方文档查找 然后使用命令启动uwsgi进程,其中uwsgi.ini为上面内容的配置文件 uwsgi -i uwsgi.ini 可以看下日志文件有没有报错,或者看下...一定要确保进程正常run起来才行 至此,DJANGO已经通过nginx+uwsgi可以访问了 三、配置访问vue 其实这里访问编译好的vue静态文件有很多方式,本文主要讲述通过nginx直接访问和通过django...当然要做到这样要确保以下配置的正确 找到DJANGO_DIR根目录下DJANGO_NAME同名文件夹下urls.py,使用通用视图创建最简单的模板控制器,增加一行路由 url(r'^$', TemplateView.as_view...redis、celery,都需要开启守护进程,其中celery自身还不支持守护进程

    2.2K120

    linux守护进程

    接管; 2、有哪些常见的守护进程 日志服务进程 syslogd 数据库守护进程 mysqld 3、创建守护进程的步骤 1)fork()创建进程,父进程exit()退出 这是创建守护进程的第一步。...之后的所有工作都在子进程中完成,而用户在Shell终端里则可以执行其他命令,从而在形式上做到了与控制终端的脱离,在后台工作。...4)在孙进程中调用 chdir() 函数,让根目录 ”/” 成为孙进程工作目录 这一步也是必要的步骤,使用fork创建的子进程继承了父进程的当前工作目录。...因此,通常的做法是让"/"作为守护进程的当前工作目录,这样就可以避免上述的问题,当然,如有特殊需要,也可以把当前工作目录换成其他的路径,如/tmp,改变工作目录的常见函数是chdir。...由于使用fork函数新建的子进程继承了父进程文件权限掩码,这就给该子进程使用文件带来了诸多的麻烦。因此,把文件权限掩码设置为0,可以大大增强该守护进程的灵活性。设置文件权限掩码的函数是umask。

    3.1K20

    Linux守护进程

    会话 创建会话的注意事项: 调用进程不能进程组组长(父进程不能创建会话),该进程变成新会话首进程session header; 该进程成为一个新的进程组的组长进程,也就是说如果子进程创建了一个会话,那么子进程就脱离父进程进程组...如何创建守护进程模型 ① 创建进程,父进程退出 所有工作在子进程中进行,形式上脱离了控制终端。...④ 重设文件权限掩码 使用umask()函数重设文件掩码,即可以防止继承的文件创建屏蔽字来拒绝某些权限,也可以增加守护进程的灵活性。...⑥ 开始执行守护进程的核心工作守护进程退出处理程序模型(非必要) 3..../a.out > file.log & 这样运行的程序就是一个守护进程,也可以达到上面那样创建守护进程的效果。

    14810

    Python实现守护进程

    os.setsid() # 注意了,这里是第2次fork,也就是子进程的子进程,我们把叫为孙子进程 _pid = os.fork() if _pid:...会话组 登陆终端时,就会创造一个会话,多个进程可以包含在一个会话中。而创建会话的进程,就是会话组长。 已经是会话组长的进程,不可以再调用setsid()方法创建会话。...因此,上面代码中,子进程可以调用setsid(),而父进程不能,因为它本身就是会话组长。...另外,sh(Bourne Shell)不支持会话机制,因为会话机制需要shell支持工作控制(Job Control)。 守护进程与后台进程 通过&符号,可以把命令放到后台执行。...3、守护进程改变了会话、进程组、工作目录和文件描述符,后台进程直接继承父进程(shell)的 换句话说:守护进程就是默默地奋斗打拼的有为青年,而后台进程是默默继承老爸资产的富二代。

    2K80

    网站功能——使用 Supervisor 部署 Django 应用程序

    具体的方案是加入 supervisor 来守护 gunicorn,也就是说使用 supervisor 来启动 gunicorn 进而运行 Django。...日志管理:Supervisor可以捕获和管理进程的输出日志,包括标准输出和标准错误。提供了对日志文件的轻松访问和旋转,以便有效地跟踪和调试应用程序的运行情况。...配置灵活:Supervisor使用简单的配置文件来定义要监控和管理的进程。您可以为每个进程指定启动命令、工作目录、运行用户等信息,并通过配置文件灵活地定义进程之间的依赖关系。...pid 文件地址,然后是 file 参数和 serverurl 参数的地址应该报错一致,这两个文件会自动生成,所以要保证权限有。...创建服务配置 上面的主配置中 include 的目录中创建服务配置,比如django.conf,放到 /opt/cloud/izone/supervisord.d/ 目录里面就行。

    61020

    守护进程「建议收藏」

    事实上每个终端设备都对应一个不同的设备文件, /dev/tty提供了一个通用的接口, 一个进程要访问的控制终端既可以通过/dev/tty也可以通过该终端设备所对应的设备文件来访问. ttyname函数可以文件描述符查出对应的文件名...所以, 组长进程标识: 其进程组ID其进程ID 可以使用kill -SIGKILL -进程组ID(负的)来将整个进程组内的进程全部杀死 组长进程可以创建一个进程组, 创建进程组中的进程, 然后终止....组长进程不能成为新会话首进程,新会话首进程必定会成为组长进程。 setsid pid_t setsid(void); 创建一个会话,并以自己的ID设置进程组ID,同时也是新会话的ID。...守护进程的特点   后台服务程序   独立于终端控制   周期性执行某任务   不受用户登陆注销影响   一般采用以d结尾的名字(服务) 创建守护进程模型 fork子进程, 父进程退出, 所有工作在子进程中进行形式上脱离了控制终端...; 非必须 重设文件权限掩码, umask()函数, 防止继承的文件创建屏蔽字拒绝某些权限, 增加守护进程灵活性; 非必须 关闭文件描述符, 继承的打开文件不会用到, 浪费系统资源, 无法卸载, close

    59040

    Linux守护进程的编程实现

    其次,守护进程必须与其执行前的环境隔离开来。这些环境包含未关闭的文件描写叙述符,控制终端,会话和进程组,工作文件夹以及文件创建掩模等。...关闭打开的文件描写叙述符 进程创建的父进程那里继承了打开的文件描写叙述符。如不关闭,将会浪费系统资源,造成进程所在的文件系统无法卸下以及引起无法预料的错误。...按例如以下方法关闭它们: for(i=0;i 关闭打开的文件描写叙述符close(i);> 5. 改变当前工作文件进程活动时,其工作文件夹所在的文件系统不能卸下。...一般须要将工作文件夹改变到根文件夹。对于须要转储核心,写执行日志的进程工作文件夹改变到特定文件夹如/tmpchdir(“/”) 6....重设文件创建掩模 进程创建的父进程那里继承了文件创建掩模。它可能改动守护进程创建文件的存取位。为防止这一点,将文件创建掩模清除:umask(0); 7.

    2.4K20

    Python守护进程daemon实现

    00:00:00 [ksoftirqd/0] 其中,[kthreadd]为内核进程,由fork出来的子进程都是内核进程,并且内核守护进程的名字出现在方括号中,对于需要在进程上下文执行工作但却不被用户层进程...这些环境包括未关闭的文件描述符,控制终端,会话和进程组,工作目录以及文件创建屏蔽字等。这些环境通常是守护进程从执行的父进程(特别是shell)中继承下来的。...1.2 守护进程的特性 1.在后台运行 2.与其运行前的环境隔离开来。这些环境包括未关闭的文件描述符、控制终端、会话和进程组、工作目录以及文件创建掩码等。...这是为了保证守护进程的当前工作目录在一个挂载的文件系统中,该文件系统不能被卸载。 5、关闭不再需要的文件描述符。根据具体情况来定。...6.重设文件创建掩码为0 7.处理SIGCHLD 信号 3 Python守护进程 3.1 函数实现 #!

    7.5K30

    运维人必收藏的最全Linux服务器程序规范

    后台程序又称守护进程没有控制终端,因而也不会意外接受用户输入。守护进程的父进程一般是init进程pid=1)。...Linux服务器程序通常有一套日志系统,至少能输出日志到文件,有的高级服务器可以输出日志到专门的UDP服务器。大部分后台进程都在/var/log下有自己的日志目录。...2.会话 (1)一些有关联的进程将组成一个会话, 下面的函数用于创建一个会话: 该函数不能进程组的首领进程调用,否则将产生一个错误。...这三条命令创建了一个会话(SID是2962)和两个进程组(PGID:2962, 3102)bash命令的PID,PGID和SID都相同,显然时会话的首领, 也就是组2962的首领。...所以可以利用早先打开的文件描述符来访问调用chroot之后不能直接访问的文件(目录). 06 服务器程序后台化 最后,如何在代码中让一个进程守护进程的防止运行,守护进程的编写遵循一定的步骤,下面一个实例

    1.2K00

    史上最全Linux服务器程序规范

    后台程序又称守护进程没有控制终端,因而也不会意外接受用户输入。守护进程的父进程一般是init进程pid=1)。...Linux服务器程序通常有一套日志系统,至少能输出日志到文件,有的高级服务器可以输出日志到专门的UDP服务器。大部分后台进程都在/var/log下有自己的日志目录。...2.会话 (1)一些有关联的进程将组成一个会话, 下面的函数用于创建一个会话: 该函数不能进程组的首领进程调用,否则将产生一个错误。...这三条命令创建了一个会话(SID是2962)和两个进程组(PGID:2962, 3102)bash命令的PID,PGID和SID都相同,显然时会话的首领, 也就是组2962的首领。...所以可以利用早先打开的文件描述符来访问调用chroot之后不能直接访问的文件(目录). 06 服务器程序后台化 最后,如何在代码中让一个进程守护进程的防止运行,守护进程的编写遵循一定的步骤,下面一个实例

    1.9K60

    教你写一个守护进程

    守护进程与终端无任何关联,用户的登录与注销与守护进程无关、不受其影响,守护进程自成进程组、自成会话,即pid=gid=sid。...子进程是继承了父进程的当前工作目录,由于在进程运行中,当前目录所在的文件系统是不能卸载的,这对以后使用会造成很多的麻烦。...因此通常的做法是让“/”作为守护进程的当前目录,当然也可以指定其 目录来作为守护进程工作目录。 重设文件权限掩码 umask。...因此,把文件权限掩 码设置为 0,确保子进程有最大操作权限、这样可以大大增强该守护进程的灵活性。设置文件权限掩码的函数是 umask,通常的使用方法为 umask(0)。 关闭不再需要的文件描述符。...pid; int i; /* 创建进程 */ pid = fork(); if (0 > pid) { perror("fork error"); exit

    1.5K30

    PHP 编写守护进程

    PHP 创建守护进程 进程根据状态可以分为三种进程守护进程,僵尸进程,孤儿进程。今天我们着重来分析下守护进程。...之后所有的工作都在子进程中完成,而用户在 shell 终端里则可以执行其他的命令,从而使得程序以僵尸进程形式运行,在形式 I 上做到了与控制终端的脱离。...由于在进程运行过程中,当前目录所在的文件系统不能卸载,因此,把当前工作目录换成其他的路径,如 “/” 或 “/tmp” 等。改变工作目录的常见函数是 chdir。...重设文件创建掩码 文件创建掩码是指屏蔽掉文件创建时的对应位。由于使用 fork 函数新建的子进程继承了父进程文件创建掩码,这就给该子进程使用文件带来了诸多的麻烦。...因此,把文件创建掩码设置为 0,可以大大增强该守护进程的灵活性。设置文件创建掩码的函数是 umask,通常的使用方法为 umask (0)。

    1.7K20

    进程组、会话、控制终端概念,如何创建守护进程

    守护进程创建流程 守护进程创建流程如下: 1. 创建进程,父进程退出 2. 在子进程创建新会话 3. 改变当前目录为根目录 4. 重设文件权限掩码 5....读者可以回忆一下创建守护进程的第一步,在那里调用了fork()函数来创建进程再令父进程退出。...因此,通常的做法是让“/”作为守护进程的当前工作目录,这样就可以避免上述问题。当然,如有特殊需要,也可以把当前工作目录换成其他的路径,如/tmp。改变工作目录的常见函数是chdir()。 4....由于使用fork()函数新建的子进程继承了父进程文件权限掩码,这就给该子进程使用文件带来了诸多的麻烦。 因此,把文件权限掩码设置为0,可以大大增强该守护进程的灵活性。...,以下开始正式进入守护进程实际工作 * 注意:由于此时守护进程完全脱离了控制终端,因此,不能像其他普通进程 * 一样通过printf或者perror将错误信息输出到控制终端,一种通用的办 *

    1.5K20

    django 1.8 官方文档翻译: 6-6-2 如何使用WSGI 部署

    startproject 命令创建一个/wsgi.py 文件,它就包含这样一个application 可调用对象。...既可用于Django 的开发服务器,也可以用于线上WSGI 的部署。 WSGI 服务器从它们的配置中获得application 可调用对象的路径。...Django 使用DJANGO_SETTINGS_MODULE 环境变量来定位settings 模块。包含settings 模块的路径,以点分法表示。...这是runserver 如何找到默认的settings 文件的机制。 注 因为环境变量是进程范围的,当你在同一个进程中运行多个Django 站点时,它将不能工作。...为了避免这个问题,可以使用mod_wsgi 的守护进程模式,让每个站点位于它自己的守护进程中,或者在wsgi.py中通过强制使用os.environ["DJANGO_SETTINGS_MODULE"]

    39920

    AirPlay Deamon学习(Linux Daemon)

    ---- 二,创建守护进程步骤 首先我们要了解一些基本概念: 进程组 : 每个进程也属于一个进程组 每个进程主都有一个进程组号,该号等于该进程组组长的PID号 ....setsid()函数可以建立一个对话期: 如果,调用setsid的进程不是一个进程组的组长,此函数创建一个新的会话期。...可以通过使进程不再成为会话组长来禁止进程重新打开控制终端: if(pid=fork()) exit(0);//结束第一子进程,第二子进程继续(第二子进程不再是会话组长) 关闭打开的文件描述符 进程创建的父进程那里继承了打开的文件描述符...按如下方法关闭它们: for(i=0;i 关闭打开的文件描述符close(i);> 改变当前工作目录 进程活动时,其工作目录所在的文件系统不能卸下。一般需要将工作目录改变到根目录。...对于需要转储核心,写运行日志的进程工作目录改变到特定目录如/tmpchdir(“/”) 重设文件创建掩模 进程创建的父进程那里继承了文件创建掩模。它可能修改守护进程创建文件的存取位。

    1.2K30
    领券