我创建了以下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.
请提出正确的方法来找出该进程是否正在运行。
答案 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