Articles of 守护进程

相当于新版本新贵中的“pid文件”节

我希望能够使用新手来pipe理守护进程,因为我无法完全控制分叉行为。 “pid”节从版本0.3.9开始被删除,所以我不能把它指向一个pid文件。 什么是正确的方式去呢? 我必须编写一个发布SIGSTOP的包装脚本吗?

监控configuration重新加载 – 应该重新启动监控服务?

在Ubuntu服务器上运行Monit 5.4。 当我使用monit reload ,它似乎重新启动受监视的服务(Tomcat 7在这种情况下)。 这是预期的行为? 文档说 : 重新加载 – 重新初始化正在运行的Monit守护进程,守护进程将重新读取其configuration,closures并重新打开日志文件。 我希望它不会重新启动任何服务,但只重新加载它的configuration,这样我可以改变电子邮件警报和其他东西。 这是monit status的输出 The Monit daemon 5.4 uptime: 15h 0m Process 'tomcat7' status Running monitoring status Monitored pid 38842 parent pid 1 uptime 14h 30m children 0 memory kilobytes 3445964 memory kilobytes total 3445964 memory percent 10.4% memory percent total 10.4% cpu percent […]

从LSB初始化脚本w / start-stop-daemon启动一个PHP守护进程

我正在写一个LSB​​初始化脚本(无可否认,我从来没有从头开始)启动一个PHP脚本,守护自己。 PHP脚本开始如下所示: #!/usr/bin/env php <?php /* do some stuff */ 然后在init脚本中这样启动: # first line is args to start-stop-daemon, second line is args to php-script start-stop-daemon –start –exec /path/to/executable/php-script.php \ — –daemon –pid-file=$PIDFILE –other-php-script-args –daemon标志会导致php脚本作为一个守护进程自行分离和运行,而不是依靠start-stop-daemon来分离它。 这是如何(试图)停止在init脚本中: start-stop-daemon –stop –oknodo –exec /path/to/executable/php-script.php \ –pidfile $PIDFILE 问题是,当我试图停止通过初始化脚本,它给了我这个: $ sudo /etc/init.d/my-lsb-init-script stop * Stopping My Project No /path/to/executable/php-script.php found […]

在stdout和stderr的后台启动sinatra应用程序redirect(追加)到一个文件

我有一个使用ruby app.rb在本地机器上运行的sinatra应用程序。 当通过ssh在远程机器上部署它时,我如何在后台运行它,并将stdout和stderrredirect到日志文件。 在重新启动时,我想保留以前的日志,以便将更新的消息追加到现有的日志文件中,而不是截断它。 运行我的webapp作为守护进程的推荐方式是什么? 我已经尝试了nohup ruby app.rb & ,但似乎缺lessstderr,并且在某些情况下,日志语句似乎无序。

守护进程调用的前台程序是否应该根据严重性级别在stderr和stdout之间分割日志logging?

通常日志消息被写入stderr。 我想知道如果这是一个好主意/实践分裂日志消息,以便错误和警告转到标准错误,而debugging/信息/通知消息转到标准输出,而不是? 或者这是不相干的,因为许多专用的日志logging过程只能从stdin读取,这需要将stderr和stdout中的源日志消息合并,并redirect到logging器的stdin。 [更新] 下面的两个答案都提到了syslog,我想我需要详细说明安装。 我问的守护进程自己在前台运行。 守护进程由监督进程(如runit或supervisord 。 在这两种情况下,守护进程的stderr和stdout都将被监督进程捕获,监督进程的工作是决定如何以及在哪里存储日志(可能是syslog,或者通过UDP在networking上的其他地方) 。 守护进程不必担心写什么和在哪里写日志,因为他们只是写入标准输出/标准错误。 在runit的情况下,其日志logging工具svlogd将从stdin中读取redirect的日志消息,这些日志消息与managed守护进程的stderr / stdout组合在一起。 至于supervisord ,它可以loggingstderr和stdout来分离日志文件。 所以在这个特定的设置中,将stderr和stdout之间的日志分开,还是写入其中之一是一个好习惯?

在Tomcat中独立运行Jenkins

在独立运行Jenkins或在Tomcat内运行时,应该考虑哪些事情? 我们宁愿不必使用Tomcat,因为这台服务器上没有其他应用程序需要Tomcat,因此我们将为Jenkins设置和维护另一个应用程序。 但是在Tomcat中运行Jenkins肯定有一些优势,否则为什么不是每个人都select单独运行(因为它更容易独立设置和维护),那么这些优势是什么呢? 单独使用而不使用Tomcat会丢失什么? jenkins的安装因素的大小是否决定? 即在一定数量的工作/build设或负载之后,是否需要从一个移动到另一个,或者是既小又大的Jenkins安装同样适用于这两个选项? Jenkins独立使用Winstone servlet引擎,所以在某些方面这个问题也是关于Winstone vs Tomcat的。

如何在不使用root的情况下运行supervisord?

我似乎无法弄清楚为什么supervisord不能作为非root用户运行。 如果我将用户设置为jason(pid 1000)来启动它,我会在日志文件中得到以下内容: 2010-05-24 08:53:32,143 CRIT Set uid to user 1000 2010-05-24 08:53:32,143 WARN Included extra file "/home/jason/src/tsched/celeryd.conf" during parsing 2010-05-24 08:53:32,189 INFO RPC interface 'supervisor' initialized 2010-05-24 08:53:32,189 WARN cElementTree not installed, using slower XML parser for XML-RPC 2010-05-24 08:53:32,189 CRIT Server 'unix_http_server' running without any HTTP authentication checking 2010-05-24 08:53:32,190 INFO daemonizing the […]

kslowd的目的是什么?

我正在运行Ubuntu 10.10: uname -a Linux mt-xps 2.6.35-22-generic #35-Ubuntu SMP Sat Oct 16 20:45:36 UTC 2010 x86_64 GNU/Linux 当我运行top的时候,偶尔会看到一个“kslowd000”或类似的进程在最高CPU使用率列表中popup。 我尝试了Googlesearch,但没有find解释。 手册也没有帮助。 它有什么作用 ? 我怎么知道我自己?

在Ubuntu上为守护进程设置umask的方法

我有一个http守护进程服务器进程(yaws),我想让服务器写入任何具有002的umask的新文件,以便同一组中的另一个用户可以修改,移动或删除由守护进程创build的文件。 这是在Ubuntu 10.04。 与Apache不同的是,yaws没有umask的configuration选项,那么有什么方法可以设置任何守护进程的umask? 我find了有关更改init脚本添加umask 002 答案 。 这确实奏效,但我不确定编辑初始化脚本是使这个在多台机器上进行文档和configuration变得容易的最佳方式。 我也在这里find了对pam_umask模块的引用。 看起来像这样允许每个用户在/ etc / passwd的GECOS字段中configurationumask的设置。 有没有其他方法来设置守护进程的umask? 那么推荐的方法是什么?

守护进程function在CentOS 6.4中不起作用

我正试图在不同的用户下进行一个进程的守护进程。 在我的init.d中,我有一个这样的服务: … start() { echo "Starting mydaemon…" daemon –user someuser –name mydaemon mycommand } … (整个脚本在这里: http : //pastebin.com/bvpnsHgn ) 但是,我得到的只是daemon: command not found 。 我检查了daemon()是在/etc/init.d/functions声明的,但是,我似乎无法使用它。 我该如何解决这个问题?