如何查找进程是否正在运行?

时间:2018-12-08 05:59:38

标签: linux process grep rhel ps

我创建了以下bash脚本,以了解进程是否正在运行

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int palindrome(char str[])
{
   int l=0;
   int h = strlen(str) -1;
    while (h>l)
        {
           if (str[l++] != str[h--])
              {
                printf("%s -> Not Palindrome",str);
                return;
              }
 }
printf("%s is palindrome",str);
}
   int main()
 {
    char str[100];
    FILE*fptr;
    fptr= fopen("Lab12input.txt","r");
    if (fptr == NULL)
       {
        printf("can't open file");
        exit(0);
       }
    while (fscanf(fptr,"%s",str) != EOF)
      {
        palindrome(str);
        printf("\n");
      }
   fclose(fptr);
   return 0;
  }

但是,脚本始终返回java.lang.NullPointerException: null.

请提出正确的方法来找出该进程是否正在运行。

2 个答案:

答案 0 :(得分:0)


PR=$(ps -ef | grep process_name | wc -l) 
if [ "$PR" -ge 2 ]; then
    echo "Process is running."
else
    echo "Process is not running."
fi

第一行的输出始终包括自身的grep process_name。所以运行过程在第二行。

答案 1 :(得分:0)

您在流程列表中得到grep process_name。因此,请确保将其省略:)

ps -ef | grep -v "grep process_name" | grep process_name
if [ $? -eq 0 ]; then
  echo "Process is running."
else
  echo "Process is not running."
fi