首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测LSF守护进程是否正在运行

检测LSF守护进程是否正在运行
EN

Server Fault用户
提问于 2013-06-12 13:59:35
回答 1查看 482关注 0票数 0

我继承了一个脚本,该脚本试图通过执行ps来检测LSF守护进程是否正在运行,然后对大量的内容进行预测。我认为这很容易出错,我正在寻找更好的方法。到目前为止,我发现的最好的是LSF命令lsid,但这只是指示是否安装了LSF,并没有真正告诉我事情已经启动和运行。除了提交一份工作,还有谁有更好的主意吗?这需要与Linux & Solaris一起工作。

EN

回答 1

Server Fault用户

发布于 2013-06-18 08:50:18

一般情况下

在Linux/Unix上了解某个进程是否正在运行的唯一安全方法是使用pidfile方法。

这意味着:

  1. 启动进程时,可以将新启动的进程的PID保存在pidfile中。通常,该文件保存在进程有其日志文件的地方,在您的示例中,一个好的名称是lsf.pid (这类文件似乎是此类文件的约定)。
  2. 现在,您需要一个脚本来启动/停止/显示进程的状态,这将考虑到pidfile。互联网上有很多这样的东西。

这种方法的主要好处是您可以执行ps -p <pidno>。这是确定进程是否正在运行的唯一安全方法。而且,ps -p命令在Linux/Unix版本之间是可移植的,这与您可以找到的许多其他内容不同。

总之:是的,您可以在ps命令的各种形式的输出上使用grep‘’ing的方法,但是它永远不会是一个安全的方法,而且很难使它真正可移植。咬紧牙关,使用pidfile方法。

关于Solaris:

您的守护进程实际上应该在SMF下运行。

这解决了您所有的问题(您不需要上面描述的一般方法),同时它还提供了:

  1. 启动时自动启动。
  2. 依赖关系管理:只有在满足了您定义的依赖项(如“网络向上”或其他什么)时,流程才会开始。
  3. 如果进程失败,自动重新启动。
  4. 如果重新启动依赖项,则自动重新启动(如果需要的话)。
  5. SMF跟踪唯一标识流程的整个问题。
  6. 您可以定义允许您的服务并发运行的次数。通常情况下,这是1,这避免了进程可以一次启动。
  7. 行政授权。您可以以一种安全的方式将启动/停止服务的权利委托给其他人,而不需要这样的用户访问服务所需的特权(这是一种类固醇上的sudo )。
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/515270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档