daemontools:如何找出错误?

daemontools:如何找出错误?

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

我在 Debian 机器上安装了 daemontools。每次我启动svc -u /etc/service/myservice服务时,都会出现一个[defunct]进程。我该如何调试这个问题?

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

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

/etc/service/myservice/log/run

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

任何帮助都将不胜感激。谢谢。

答案1

您可以使用 捕获一些错误ps -aux | grep readproctitle

一些调试思路:

  • myserver不在 中PATH。请考虑指定程序的完整路径。
  • myserver分叉到后台:使用 daemontools 启动服务时明确禁止此操作。
  • 权限:仔细检查目录和脚本的权限run

答案2

我遇到了同样的问题。当其他方法都不起作用时,这个对我有用:

  • 通过 找到 svscanboot 的 pid ps auxf,你会发现它启动了 svscan 来监控所有的服务。
  • kill -9 -pid

svscanboot 将自动启动,svscan 下的所有服务也将自动启动。

当机器上没有剩余磁盘空间时,我遇到了 svcan 的命名管道损坏的问题。

相关内容