Articles of 守护进程

当运行nginx + python flask + python-daemon:upstream发送不支持的FastCGI协议版本91

我正在使用Python Flask通过FCGI和nginx运行Python for web。 我的fcgi后端是这样设置的: #!/usr/bin/env python import argparse, daemon, os from flup.server.fcgi import WSGIServer from fwd_msg import app SOCKET_LOCATION = '/tmp/fingerprinter-fcgi.sock' if __name__ == '__main__': # arg parse (and daemonize) arg_parser = argparse.ArgumentParser() arg_parser.add_argument('–daemon', action='store_true', default=False, help='Run as daemon') arg_parser.add_argument('–cwd', action='store', default='/', help='Full path of the working directory to which the process should change […]

nginx + uwsgi + debian +守护进程

那么,首先这些只是我遵循的几个教程: projects.unbit.it/uwsgi/wiki/Doc projects.unbit.it/uwsgi/wiki/Install projects.unbit.it/uwsgi/wiki/RunOnNginx projects.unbit.it/uwsgi/wiki/Quickstart 实际上这个人应该刚刚工作,因为这是婴儿的步骤..对不对? http://library.linode.com/web-servers/nginx/python-uwsgi/debian-6-squeeze wrong … = [他们的uwsgi守护进程“starter”根本不起作用… 现在,我所在的地方是我可以得到一个简单的hello世界,如果我从命令行运行uwsgi,一个简单的例子: uwsgi -s 127.0.0.1:9001 –wsgi-file /home/www/test/application/wsgi_configuration_module.py 这是一种可取的,有点不是。我喜欢的东西是:它的工作,但它不是一个守护进程,所以它是这样运行: http : //i.imgur.com/MUSM4.jpg有问题:我不能做任何事情,它需要我手动启动它,它只能运行一个hello世界脚本…其中,因为当我设置一个快速的Nginx + PHP-FPM我可以很容易地得到它在一个套接字上运行如/tmp/php.sock,我可以很容易地得到nginx发送php的url到那个socket,所以php-fpm处理我所有的php需求。 我想做什么: 在启动时获得uwsgi自动启动 让它与nginx一起工作 让nginx通过uwsgi发送python脚本,使其正常工作 得到uwsgi与烧瓶工作? (之后..其他) 谁能帮我这个? 我很精明,需要我花几次才能弄清楚什么东西,而且我有nginx下来。我用php-fpm写得很好,但是我一直没有能够得到python的工作。 …我有多个虚拟机,完全安装错误的东西,需要重新开始,所以如果有人想放弃它,成为我的客人..感谢您的任何帮助/链接/提示等

Nginx守护进程停止失败

我已经安装了nginx 1.0.11的Ubuntu 11.04 i386服务器。 另外,我正在使用这个init.d脚本 ,这是我在几个不同的地方find的唯一一个脚本 。 它很好地启动服务器,但是,停止/重置它说 * Stopping Nginx Server… [fail] 当然,守护程序不会停止,重新启动时不会重新加载configuration。 我该如何修复?

守护进程不与notify-send进行交互

这是我的代码 #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <errno.h> #include <unistd.h> #include <syslog.h> #include <string.h> #include <iostream> int main(int argc, char *argv[]) { pid_t pid, sid; int sec = 10; pid = fork(); if (pid < 0) { perror("fork"); exit(EXIT_FAILURE); } if (pid > 0) { std::cout << "Running with PID: […]

后台作业变成守护进程而没有nohup / disown?

一个奇怪的东西给我一个脚本while.sh,它的内容是: while [ 1 ];do sleep 1 echo `date` done 运行$ while.sh>&while.log&(没有nohup或disown或setsid或双fork())退出并重新login可以看到这个过程仍然存在,它的ppid是1,它的tty是? 我的系统是rhel6(rhel5是相同的,bash 在centos5.x中,它必须使用nohup或disown或者在代码中执行双叉() 在rhel6中发生了什么

创build一个C ++守护进程并保持环境

我试图创build一个在Red Hat 6.3平台上运行的c ++守护进程,并且无法理解libc daemon()调用, daemon shell命令, startproc , start-stop-daemon和大约六种其他方法谷歌build议创build守护进程。 我已经看到了需要两个forksbuild议,但是只有一个daemon 。 为什么需要第二个叉子? 如果我编写init.d脚本来调用bash daemon ,c代码是否仍然需要调用daemon ? 我实现我的应用程序来调用c daemon()函数,因为它似乎是最简单的解决scheme,但我遇到了我的环境variables似乎被丢弃的问题。 我如何防止这种情况? 我还需要以特定的用户身份运行守护程序,而不是以root身份运行。 创buildC ++守护进程的最简单的方法是保持其环境variables,作为特定用户运行,并在系统启动时启动?

在AWS EC2 linux AMI上不断运行perl脚本

我已经使用各种代码片段来build立一个系统 监听传入TCP数据的端口(使用perl脚本),将这些数据写入日志文件。 调用并运行PHP脚本来使用日志文件并将其写入RDS MySQL数据库 我有一个GPS设备configuration为将数据发送到我的AWS EC2服务器的弹性IP 它工作正常,当我通过SSH运行 perl portlistener.pl 它工作正常,愉快地工作。 我可以停止脚本运行的唯一方法是closuresterminal窗口,结束我的SSH会话。 我需要做的是始终保持运行,并实施一个启动,停止和重启设施。 我需要创build一个守护进程吗? 我知道PHP,但直到现在,从来没有与Perl的工作。 我也不太熟悉命令行,除了安装更新,浏览和编辑单个文件等。 提前感谢任何帮助,或指引我在正确的方向。

如何为独特的守护进程和多个用户发布Linuxlocking文件

我有一个deamon,一次只能运行一个实例。 守护进程是更大的应用程序的一部分。 我是这样做的: 用O_CREAT | O_RDWR open() /tmp/prog.pid O_CREAT | O_RDWR ,权限0666.权限实际上变成了0664,可能是因为umask(?) flock()在由open()返回的文件描述符上,用LOCK_EX | LOCK_NB LOCK_EX | LOCK_NB 这是我所有的第一。 我的守护进程在SIGTERM和SIGINT上退出,但事实certificate,退出时锁没有被释放。 我在man 1 flock帮助下实现了(奇怪的是不是在第二man 2 flock ),如果“所附的指挥小组可能已经分派了一个不应该持有锁的后台进程”,则可能需要手动解锁。 这是因为我正在开发一个守护进程,所以我现在在退出时手动解锁。 现在到我的问题:有几个用户可能正在运行守护进程。 如果user1正在运行守护进程,我希望user2能够杀死它并以自己的身份重新启动它。 locking的文件/tmp/prog.pid拥有权限/tmp/prog.pid ,所有者user1,组user1。 停止脚本prog_stop杀死了应用程序中涉及的所有进程(它需要超级用户权限,我确定)。 它也杀死守护进程。 当user2运行prog_stop ,锁被释放(我相信),但是user2 不能启动它自己的守护进程 ,因为它既不是锁文件的所有者,也不是它的组。 几种可能的解决方 使锁文件0666,可写入所有。 危险的。 创build一个用户需要运行该应用程序的组。 这要求所有的用户都使用这个组来启动应用程序,可能需要使用newgrp 。 容易忘记,不容易执行,人们这样做。 可能在用于启动应用程序的脚本中设置当前组? 完全删除prog_stop的locking文件。 缺点:我从C文件中打开文件,其中定义了pathstring。 我需要在停止脚本中写入(并保持!)与path完全相同的文件名。 守护进程的locking文件必须非常普遍。 处理这个问题的标准方法是什么?

如何守护一个脚本

我试图在Ubuntu上使用daemon ,但即使在阅读man手册之后,我也不确定如何使用daemon 。 我有以下testing脚本foo.sh #!/bin/bash while true; do echo 'hi' >> ~/hihihi sleep 10 done 然后我尝试了这个命令,但什么也没发生 daemon –name="foo" -b ~/daemon.out -l ~/daemon.err -v — foo.sh hihihi文件没有更新,我在errlog中发现: 20161221 12:12:36 foo: client (pid 176193) exited with 1 status 我如何正确使用daemon命令?

使用execl来执行一个守护进程

我正在用Linux编写一个C程序,其中包含一个允许在远程机器上执行shell命令的模块。 实际执行命令最简单的方法当然是简单地使用system()函数,或者使用popen,然后获取输出。 但是,由于其他与当前问题无关的devise要求,我select使用更低级别的方法。 所以基本上,我build立了一个pipe道和叉子,然后调用execl。 除了一个令人讨厌的例外,这一切都完美无缺。 如果要执行的shell命令是守护进程,则它不能正常工作。 在这种情况下,它只是挂起。 我无法弄清楚为什么。 我的理解是,当守护进程启动时,通常会分叉,然后父进程退出。 由于我的应用程序有一个开放的pipe道,父母退出时调用read()应该失败。 但是,应用程序只是挂起。 这是一些裸露的骨骼代码,重现了这个问题: int main(int argc, char** argv) { // Create a pipe and fork // int fd[2]; int p = pipe(fd); pid_t pid = fork(); if (pid > 0) { // Read from the pipe and output the result // close(fd[1]); char buf[1024] = { […]