perl – 如何使用shell脚本来监督程序?

perl – 如何使用shell脚本来监督程序?,第1张

概述我已经四处寻找,但还没有找到我正在寻找的东西.简而言之,我创建了一个bash脚本,在无限循环中运行,睡眠并检查进程是否正在运行.唯一的问题是即使进程正在运行,也表示它不是并打开另一个实例. 我知道我应该按进程名称检查而不是进程ID,因为另一个进程可以跳入并获取id.但是,所有perl程序在我的系统上都命名为Perl5.10.0,我打算打开同一个perl程序的多个实例. 以下“if”总是返回fals 我已经四处寻找,但还没有找到我正在寻找的东西.简而言之,我创建了一个bash脚本,在无限循环中运行,睡眠并检查进程是否正在运行.唯一的问题是即使进程正在运行,也表示它不是并打开另一个实例.

我知道我应该按进程名称检查而不是进程ID,因为另一个进程可以跳入并获取ID.但是,所有perl程序在我的系统上都命名为Perl5.10.0,我打算打开同一个perl程序的多个实例.

以下“if”总是返回false,我在这里做错了什么???

while true; do if [ ps -p $pID ]; then  echo "Program running fine"  sleep 10 else  echo "Program being restarted\n"  perl program_name.pl &  sleep 5  read -r pID < "${filename}_pID.txt" fidone
解决方法 摆脱方括号.它应该是:

if ps -p $pID; then

方括号是测试命令的语法糖.这是一个完全不同的野兽,根本不会调用ps:

if test ps -p $pID; then

事实上,当我运行它时会产生“-bash:[: – p:二元运算符预期”.

总结

以上是内存溢出为你收集整理的perl – 如何使用shell脚本来监督程序?全部内容,希望文章能够帮你解决perl – 如何使用shell脚本来监督程序?所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1270709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存