【问题标题】:How to check whether my process is running or not in Linux [duplicate]如何检查我的进程是否在 Linux 中运行 [重复]
【发布时间】:2019-08-26 06:50:05
【问题描述】:

我正在运行一个名为 RecordProcessor.sh 的脚本,我正在编写另一个脚本来检查 RecordProcessor.sh 是否正在运行。即使该进程正在运行,如果我执行 grep 我无法找到进程正在运行。

我的脚本如下:

ps -U $LOGNAME | grep "RecordProcessor.sh"

我什么都喜欢

ps -U $LOGNAME | grep -v grep | grep "RecordProcessor.sh"

我只能找到它在哪个 bash 中运行,而不是实际的文件名。

【问题讨论】:

标签: linux shell


【解决方案1】:

您可以使用以下内容:

if pidof -s RecordProcessor.sh &>/dev/null;then 
   echo "process exists"
else
   echo "no such process"
fi

或者使用 grep

if ps -aux -U $LOGNAME | grep RecordProcessor.sh |  grep --quiet -v "grep";then 
   echo "process exists"
else
   echo "no such process"
fi

【讨论】:

  • 即使我正在运行该进程,但我却没有这样的进程。我不知道为什么
  • 如果直接运行RecordProcessor.sh 是正确的,这里是grep "RecordProcessor.sh" 的参数
  • 嘿 mik1904,即使我正在运行你的脚本并且 RecordProcessor.sh 也在运行,我得到的输出是“没有这样的进程”。
  • @AnirudhS 你怎么知道 RecordProcessor.sh 正在运行
  • 使用flock 运行RecordProcessor.sh,然后检查您选择的pid 文件是否存在于磁盘上。请参阅:linux.die.net/man/1/flock
猜你喜欢
  • 2017-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-21
  • 2010-09-07
  • 1970-01-01
相关资源
最近更新 更多