Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Shell script to check if the process is already running and exit if yes

I have a shell script with methods status() and start(). The code is below:

#function to check the jmeter processes running
status(){
     PID=$(ps -ef | grep jmeter|grep -v grep)
     echo "The jmeter processes running are: \n$PID"
}

#function to run the .jmx file given by the user at run time
start(){
     echo "Please enter the file name .jmx extension"
     read file
     echo "Please enter the log file name .jtl extension"
     read log_file
     sh /home/ubuntu/apache-jmeter-3.0/bin/jmeter.sh -n -t $file -l $log_file &
}
while [ "$1" != "" ]; do
case "$1" in
        start)
            jmeter_start
            ;;
         status)
            jmeter_status
            ;;
          *)
            echo $"Usage: $0 {start|status}"
            exit 1
        esac
   shift
done

now when I run this script, I have to check if it is already running and if it is running I have to exit. Let me know how to do this.

like image 497
user123 Avatar asked Jun 30 '16 14:06

user123


1 Answers

Add a flag at the beginning of the function and set it to 1, before the end of the function set it to 0, query it however you like.

#function to check the jmeter processes running
status(){
     PID=$(ps -ef | grep jmeter|grep -v grep)
     echo "The jmeter processes running are: \n$PID"
}

#function to run the .jmx file given by the user at run time
start(){
     export start_flag=1
     echo "Please enter the file name .jmx extension"
     read file
     echo "Please enter the log file name .jtl extension"
     read log_file
     sh /home/ubuntu/apache-jmeter-3.0/bin/jmeter.sh -n -t $file -l $log_file &
     export start_flag=0
}

Another option would be writing to an external file and query it.

like image 169
Yaron Avatar answered Sep 23 '22 10:09

Yaron