Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux-puppet onlyif with pgrep不起作用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我想在puppet中使用exec,只要它的进程没有运行 exec { "execute me": onlyif => "pgrep -fc 'ruby execute.rb'", command => "execute me", } 所以在上面的例子中,如果进程’ruby execute.rb’已经运行,那么exec不应该运行为 pgrep -fc 'ruby execute
我想在puppet中使用exec,只要它的进程没有运行
exec { "execute me":
    onlyif  => "pgrep -fc 'ruby execute.rb'",command => "execute me",}

所以在上面的例子中,如果进程’ruby execute.rb’已经运行,那么exec不应该运行为

pgrep -fc 'ruby execute.rb' will return 1.

然而

该命令似乎总是在木偶中运行.

在我的linux框中,当我执行pgrep -fc’ruby execute.rb’时,我总是得到一个大于0的值.

我的命令有问题吗?

解决方法

只有当pgrep返回0时,你的exec才会运行.pgrep手册页告诉我们,只有找到匹配的进程时,pgrep的退出代码才为零(0),当没有匹配的进程时,它将返回一(1).另一方面,puppet文档告诉我们,只有当参数中的命令返回0时,parameter onlyif才会执行资源.

而不是只有你应该使用parameter unless.这样你的exec只会在你的pgrep返回非零时运行,即.它没有找到任何匹配的过程.

exec { "execute me":
  unless  => "pgrep -fc 'ruby execute.rb'",}

大佬总结

以上是大佬教程为你收集整理的linux-puppet onlyif with pgrep不起作用全部内容,希望文章能够帮你解决linux-puppet onlyif with pgrep不起作用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: