【问题标题】:How to get the logs for a daemon process on Linux如何在 Linux 上获取守护进程的日志
【发布时间】:2018-05-19 15:47:22
【问题描述】:

我启动了一个守护进程,如下所示:

./my-shell-script.sh -daemon other_params.cfg

然后一切正常,除了...我试图寻找日志,但找不到...

我试图检查/var/log/messages/ 下没有名为messages 的文件夹。我在/var/log 下看到的所有内容如下:

drwxrwxr-x  8 root   syslog   4096 May 19 15:33 .
drwxr-xr-x 13 root   root     4096 May  9 02:00 ..
-rw-r--r--  1 root   root    16943 May 19 13:39 alternatives.log
drwxr-xr-x  2 root   root     4096 May 19 13:39 apt
-rw-r-----  1 syslog adm     19130 May 19 15:39 auth.log
drwxr-xr-x  3 root   root     4096 May 19 13:09 azure
-rw-------  1 root   utmp    11136 May 19 15:39 btmp
-rw-r--r--  1 root   root     8697 May 19 13:16 cloud-init-output.log
-rw-r--r--  1 syslog adm    264539 May 19 13:16 cloud-init.log
drwxr-xr-x  2 root   root     4096 Apr  9 14:01 dist-upgrade
-rw-r--r--  1 root   root   123627 May 19 13:39 dpkg.log
-rw-r--r--  1 root   root      511 May 19 13:31 fontconfig.log
-rw-r-----  1 syslog adm    182724 May 19 13:17 kern.log
-rw-rw-r--  1 root   utmp   292292 May 19 14:39 lastlog
drwxr-xr-x  2 root   root     4096 Oct 15  2017 lxd
drwxr-x---  2 root   adm      4096 Mar  6 15:43 samba
-rw-r-----  1 syslog adm    304816 May 19 15:26 syslog
drwxr-x---  2 root   adm      4096 May 19 13:02 unattended-upgrades
-rw-r--r--  1 root   root    18138 May 19 14:44 waagent.log
-rw-rw-r--  1 root   utmp    10368 May 19 14:39 wtmp

有人知道日志在哪里吗?

【问题讨论】:

  • 没有更多信息是不可能回答这个问题的。根据您提供的信息,我们不知道您的脚本是什么或它的作用。
  • @它是一个简单的 java hello world 程序,循环运行,每 1 秒打印一次“Hello world”消息。输出将发送到标准输出控制台。

标签: linux daemon logfile


【解决方案1】:

默认情况下, Linux 中的守护进程不会在任何地方记录其输出。 (在其他操作系统上情况可能会有所不同,我不知道其他操作系统。)

当然,这是没用的,所以在实践中他们通常会实现日志记录,至少是可选的。

所以你必须自己实现日志记录。有两种方法可以在 Linux 守护进程中实现日志记录:syslog - Java 不支持 - 或者只是创建一个文件并写入它。对于后者,专业程序员通常使用 log4j、logback 之类的日志框架或 slf4j 之类的包装器。

【讨论】:

  • 我可以在/var/log/syslog 中找到我的日志。虽然它是一个包含不同进程日志的 ditry 文件,但我设法用正则表达式找到了我的文件。谢谢!
【解决方案2】:

如果您使用nohup 使进程成为守护进程,则日志将创建为不断增长的文件nohup.out - 如nohup 的输出所示。

【讨论】:

    【解决方案3】:

    我相信你可以使用 linux 中的 rsyslog 包来做到这一点,这对于记录 linux 系统不同组件生成的各种日志很有用。

    在配置中,您可以取消注释以下行,

    daemon.* -/var/log/daemon.log

    在 /etc/rsyslog.d/50-default.conf 希望它有效。

    【讨论】:

    • 谢谢,但它已经被取消注释,我没有在 /var/log 中找到任何 daemon.log 文件
    猜你喜欢
    • 2010-09-14
    • 2017-11-13
    • 1970-01-01
    • 2021-08-04
    • 2015-09-07
    • 2011-07-25
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    相关资源
    最近更新 更多