AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 456345
Accepted
user56reinstatemonica8
user56reinstatemonica8
Asked: 2012-12-09 06:56:27 +0800 CST2012-12-09 06:56:27 +0800 CST 2012-12-09 06:56:27 +0800 CST

为什么进程监控脚本会使用 exit 1;就没发现问题?

  • 772

一般问题:

在 Linux(Centos)服务器上,如果将 cron 运行的进程监控脚本设置为关闭exit 1;而不是exit 0;发现一切正常且不需要任何操作,这是错误的吗?

或者是否有合理的理由exit 1;而不是exit 0;在“一切都很好,不需要采取行动”的情况下打电话?

exit 0;在我看来没有发现问题更合适。但也许有些事情我不知道。例如,也许有一些特定于 Cron 的东西?或者也许在进程监控脚本中有一个约定,“失败”意味着“这个脚本无法解决问题”(而不是我所期望的,exit 1;这意味着“被监控的进程失败了”?)


我的具体情况:

我正在查看由我的网络托管公司编写的进程监控脚本。进程监控脚本是指由 Cron 定期执行的脚本,用于检查重要的系统进程是否正在运行,如果未运行,则采取诸如向管理员发送邮件或重新启动进程等操作。

这是他们脚本的(通用)结构,用于在端口 8080 上运行的服务(在本例中为 Apache Tomcat):

SERVICE=$(/usr/sbin/lsof -i tcp:8080 | wc -l);

if [ $SERVICE != 0 ]; then
exit 1;
else
#take action
fi

即使对于像我这样知识有限的人来说也很简单,只是这exit 1;部分看起来很奇怪。据我了解,exit 0;关闭程序并向执行该程序的父级表示一切正常,exit n;其中 n>0 和 n<127 表示出现某种错误或问题。

在这里,他们的脚本似乎违反了该规则 - 它exit 1;在一切正常的情况下调用,并且在问题情况下采取补救措施后不会退出。

对我来说,这看起来像是一个错误——但我在这方面的经验有限。是否存在调用exit 1;“一切正常,无需采取任何操作”条件比调用更合适的情况exit 0;?或者这是一个错误?


更广泛的上下文非常简单。这是一个运行 Plesk 的 Centos VPS。该脚本由 Cron 通过 Plesk 的“计划任务”Cron 管理器调用。在 Cron 和此脚本之间没有自定义层会以不寻常的方式响应退出调用。这是一个相当普通的、几乎开箱即用的 Plesk 管理的 Centos VPS(就目前而言)。此脚本监视的进程是 Apache Tomcat。

linux
  • 1 1 个回答
  • 189 Views

1 个回答

  • Voted
  1. Best Answer
    Theuni
    2012-12-09T09:02:53+08:002012-12-09T09:02:53+08:00

    您的一般分析是正确的。

    这听起来并不直接“错误”,但绝对是 cron 语义的“hackish”用法:通常如果 cron 遇到脚本出错,它会向用户发送邮件(或 crontab 中配置的任何地址)。

    当人们试图在脚本运行时始终收到邮件时,我看到了这种脚本。如果一切正常,我个人更喜欢保持沉默的“常规”UNIX 方式。

    • 2

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve