守护进程:如何找出什么是错的?

我正在探索daemontools来运行我们的一些应用程序,这些应用程序也生成一些输出(在stdout和stderr上)。

我在debian盒子上安装了daemontools。 每一次,我做一个svc -u /etc/service/myservice启动服务,我得到一个[defunct]进程。 我怎么去debugging这个问题。

以下是我的/etc/service/myservice/run

 #!/bin/bash exec myservice -c /etc/myservice/myservice.conf 

/etc/service/myservice/log/run

 #!/bin/sh exec multilog t ./main 

任何帮助将是apprecciated。 谢谢。

你可以用ps -aux | grep readproctitle来捕捉一些错误 ps -aux | grep readproctitle

一些debugging思路:

  • myserver不在PATH 。 考虑指定程序的完整path。
  • myserver入后台:使用daemontools开始的服务明确禁止。
  • 权限:仔细检查目录和run脚本的权限。

我面临同样的问题。 当没有其他工作,这对我工作:

  • 通过ps auxffindsvscanboot的pid。 你会看到它开始监视所有服务的svscan。
  • kill -9 -pid

svscanboot将自动启动,所有的服务将在svscan下进行。

当没有磁盘空间留在机器上时,svcan的命名pipe道被损坏,我面临的问题。