Articles of 守护进程

linux shell脚本的模板/平台到init.d脚本

所以我得到了一些小的cronjobs ,那需要更频繁的运行一分钟。 所以我通常做的是 – 用while loop创buildshell脚本并在其中声明sleep语句。 然后我在screen上运行它。 问题当然是,如果服务器重启,它不会启动,也不像init.d脚本那么灵活。 我查了一些post,但主要是没有那么方便的解决方法,我试图避免这些。 有没有一些平台,或者我可以popup我的while循环,并作为init.d脚本运行它的模板? 或者也许有其他一些方便的解决scheme

新贵 – 使“重新加载”像“重新启动”

我有一个守护进程,在运行reload时不响应SIGHUP发送。 它在没有特权的用户下运行,如果没有sudo权限,我无法重新启动它。 有没有办法使reload行为与restart相同,通过更改任务configuration,所以我可以作为非特权用户运行它? 我在Ubuntu 12.04上使用Upstart 1.5。

Supervisord作为Cygwin上的Windows服务

我正尝试使用Supervisord作为Windows服务运行Celery。 我遵循Celery网站和这里的configuration 。 我已经build立了一个通过cygwin运行supervisord的虚拟环境。 我强调了我认为最重要的几行(用**)。 看来supervisord和rabbitMQ正在工作。 问题是芹菜。 我使用以下命令设置服务: $ cygrunsrv –install supervisord –path /usr/bin/python –args "/usr/bin/supervisord -n -c /usr/etc/supervisord.conf" $ supervisord 更新:我现在有我的supervisord.log文件中的以下内容: 2014-08-07 12:46:40,676 INFO exited: celery (exit status 1; not expected) 2014-08-07 12:47:07,187 INFO Increased RLIMIT_NOFILE limit to 1024 2014-08-07 12:47:07,238 INFO RPC interface 'supervisor' initialized 2014-08-07 12:47:07,251 INFO daemonizing the supervisord process 2014-08-07 […]

我如何将monit设置为非守护进程模式

我试图得到monit激发monitrc脚本一次,然后退出。 我试过了 monit -v -Ic / tmp / monitrc 但是当我看着输出它说: Runtime constants: Control file = /tmp/monitrc Log file = (not defined) Pid file = /home/hduser/.monit.pid Id file = /home/hduser/.monit.id State file = /home/hduser/.monit.state Debug = True Log = False Use syslog = False Is Daemon = True 不知道这些一些其他的开关投入,还是不支持这个?

“工作未能开始” – 嘿,但为什么?

我遇到了一个让我头痛的错误。 试图谷歌,但我发现是关于MySQL不适用于此。 我刚刚在Ubuntu上更新了Node和Ghost(博客平台)。 有一些重大的问题来更新节点,因为它没有以正常的方式安装,所以apt-get没有工作。 我能够安装节点与NVM 。 尝试重新启动服务后,现在显示“作业无法启动” 他们正在使用这个init.d脚本: https : //raw.githubusercontent.com/TryGhost/Ghost-Config/master/init.d/ghost我已经更新为这样的: PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="Ghost" NAME=ghost GHOST_ROOT=/var/www/ghost GHOST_GROUP=ghost GHOST_USER=ghost DAEMON=/root/.nvm/versions/node/v4.2.3/bin/node DAEMON_ARGS="$GHOST_ROOT/index.js" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME export NODE_ENV=production 除此之外,它仍然是一样的。 但是,我不能解决“作业无法启动”部分,即使VERBOSE似乎设置为yes也不会提供任何其他消息。 我已经检查了新的垃圾箱的权限,一切似乎都没问题。 也试图手动运行博客,它似乎工作没有任何错误。 我怎样才能debugging失败的原因?

如何从服务器A到B执行远程调用来创build虚拟机

这是我在serverfault的第一个问题,所以我希望我这样做正确,因为我通常在Stackoverflow 🙂 我有两个Ubuntu 14.04 LTS服务器,服务器A和B. 服务器A运行我的客户门户运行的Web服务器,客户可以在其中订购虚拟机。 服务器B是具有KVM的虚拟机pipe理程序,其中创build映像并最终创build虚拟机。 我最近在服务器A上创build了一个bash脚本: 从一个仍然需要创build的虚拟机的mysql表中获取信息,并通过它们循环; 检查服务器B的可用磁盘空间,然后是否有足够的空间 用服务器B上的fallocate程序创build图像; 在服务器B上使用先前创build的映像创build具有vert-install的虚拟机。 所有这些命令都是使用SSH执行的。 这意味着对于每个虚拟机,我需要执行3个SSH命令。 如果虚拟机pipe理程序没有足够的磁盘空间用于创build映像,则更多。 当只有一个客户订购一个虚拟机,并且只有一个虚拟机pipe理程序时,这种脚本就可以正常工作。 有多个客户订购虚拟机和有多个虚拟机pipe理程序可能会破坏脚本。 然后我想到了以下解决scheme: 每当客户点击button“订购虚拟机”时,就会完成对虚拟机pipe理程序+端口的telnet调用,监听该端口的守护进程将运行一个脚本,例如: 端口7000:创build图像 端口7001:创build虚拟机 然而问题是我对这种东西缺乏了解。 例如: 我用什么语言编写守护进程? PHP是我的主要语言,但是因为它是“死亡的语言”,所以编写守护进程可能不太好。 这个守护进程如何监听多个端口并根据哪个端口进入正确的动作? telnet是用于这种过程的正确协议吗? 守护进程只会监听我们自己networking中的私有地址,这意味着安全性在这里没有问题。 有不同的技术更适合吗? 我没有尝试太多,因为我不知道从哪里开始。 有很多事情要考虑,但我只是需要一点点正确的方向才能开始。 我不一定需要示例代码(当然可能有帮助)。 我可以提供我创build的bash脚本,如果需要的话。

如何为现有的守护进程创build日志?

我有一个deamon运行(我没有创build),我需要能够读取其日志。 不幸的是,它没有日志文件。 有没有办法将守护进程的输出pipe道化为一个文件,并不断更新,以便我可以运行尾部-f?

为什么要用“停止; 退出1“在一个暴发户脚本而不是只是”退出1“的情况下出现错误?

我正在维护一个Upstart脚本(版本0.6.5),在pre-start script ,如果不满足前提条件,则会有一个testing来终止该服务: pre-start script if [ ! -f $REQUIRED_FILE ]; then echo "$REQUIRED_FILE does not exit" >> $LOG_FILE stop exit 1 fi end script 根据csh / tcsh参考文档, stop [jobIDs] : 挂起当前后台作业或由jobID指定的后台作业; 这是Ctrl-Z或暂停的补充。 我看不出有什么用途可以stop来,特别是在服务尚未开始的pre-start部分(即由exec节)。 我在这里错过了什么? 或者是stop在这里多余的和不必要的?

Debian 8 / init.d:“$ named”准备就绪后启动守护进程

我试图在networking和DNS启动并运行后在Debian 8上启动一个init.d守护进程。 这是我正在使用的脚本: ### BEGIN INIT INFO # Provides: local_daemon # Required-Start: $all $local_fs $remote_fs $network $named $time $syslog # Required-Stop: $all $local_fs $remote_fs $network $named $time $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starts a Daemon. # Description: Starts a custom daemon. ### END INIT INFO 我有几台服务器,这大部分工作。 […]

尝试使用System_Daemon设置PHP守护进程,并且遇到问题需要运行

尝试使用Ubuntu 10.04和PHP5启动守护进程时出现以下错误: PHP Warning: PHP Startup: Unable to load dynamic library 'usr/lib/php5/20060613/pcntl.so' – /usr/lib/php5/20060613/pcntl.so: cannot open shared object file: No such file or directory in Unknown on line 0 System_Daemon试图调用pcntl吗? 如果是这样的话,为什么要查找不存在的文件呢?