Sponsored Content
Top Forums Shell Programming and Scripting Error in finding the PID by grep and assigning to a variable Post 302739385 by duddukuri on Tuesday 4th of December 2012 06:38:40 AM
Old 12-04-2012
Wrench Error in finding the PID by grep and assigning to a variable

Hello All,
I am facing difficulty in getting the PID value & then assigning it to a variable,
kindly help me in resolving the issue.
Thanks a lot in advance.

The custom utility used inside the Test2.sh will process the file in a batch of 10 lines at once and for efficient memory management, once first batch is completed, it will start a new process of the custom_utility to process the next batch and this goes on till all batches are processed.
command executing at shell: ./Test2.sh -f=./input.txt

The Test2.sh should not exit till all the batch process of this file are completed by the custom utility.
For this reason, i used the while loop in which i am grepping for the PID having the name custom_utility & the input file and assigning it to a variable. if variable is blank, come out of loop is the logic.

Though the Sub process is running, the SUB_PID is returning blank and it is coming out of loop

Test.sh only contains the while loop logic and it is working fine.

Please help me in this regard.

-Chandra
***************************************************
Test2.sh
Code:
#! /bin/sh
if [ $# -eq 0 ]; then
    echo ""
    echo "No Parameter provided"
    usage
    exit 1
fi

# Parse command line options
for PARAM; do
    if [[ "$PARAM" = -f=* ]]; then
           FILE=$(echo $PARAM | cut -d"=" -f2)
           echo $FILE
    fi

done
    if [[   ( "$FILE" == "" )  ]]; then
            echo ""
            echo "File argument is not specified, exiting the script..."
            exit 1
    fi

    if [ ! -r ${FILE} ];then
            echo "Read access permission denied on $FILE File or File doesn't exists, exiting the script..."
            exit 1
    fi

COMMAND="custom_utility  -u=user1 -p=123 -filename=$FILE -batch_size=10"
echo "Command of Custom Utility is :"
echo ""
echo "custom_utility  -u=user1 -p=***** -f=send -filename=$FILE -batch_size=10"

$COMMAND &
CU_RC=$?
echo "lets wait till all custom_utility  process for this Input File are completed"
echo "PID : $!"
wait $PID
while true
do
        SUB_PID=`ps -ef | grep custom_utility  | grep $FILE | grep -v 'grep' | awk '{print $2}'`
        if [[  "$SUB_PID" == "" ]]; then
        break
        fi
        sleep 2
done

if [ $CU_RC -ne 0 ]; then
        echo "Error: Custom Utility for $FILE resulted in error"
        echo ""
        exit 992
fi
echo "***************************************************"
echo ""

# EOF
exit 0

***************************************************
Test.sh
Code:
#! /bin/sh

while true
do
        SUB_PID=`ps -ef | grep custom_utility | grep "./input.txt" | grep -v 'grep' | awk '{print $2}'`
        echo "SUB_PID : ~$SUB_PID~"
        if [[  "$SUB_PID" == "" ]]; then
        echo `date`
        break
        fi
        sleep 2
done

 

10 More Discussions You Might Find Interesting

1. Filesystems, Disks and Memory

finding out the pid for a busy text file

Can some one please tell me how to find out the proccess ID that is holding up a file. I am attempting to remove a file and I am getting a message stating that it is busy. i.e rm filename filename: 777 mode ? (y/n) y rm: filename not removed. Text file busy Thanks in advance. (1 Reply)
Discussion started by: jxh461
1 Replies

2. UNIX for Dummies Questions & Answers

Need to get pid of a process and have to store the pid in a variable

Hi, I need to get the pid of a process and have to store the pid in a variable and i want to use this value(pid) of the variable for some process. Please can anyone tell me how to get the pid of a process and store it in a variable. please help me on this. Thanks in advance, Amudha (7 Replies)
Discussion started by: samudha
7 Replies

3. Shell Programming and Scripting

Problem with assigning output of grep + awk to a variable

Hi All, I am getting the output for the following command when i run it on the unix console. --------------------------- grep `whoami` /etc/passwd | awk '{print ($1);}' | cut -d ":" -f3 ---------------------------- But i made it into a script and tried to print the variable, its... (5 Replies)
Discussion started by: meheretoknow
5 Replies

4. UNIX for Dummies Questions & Answers

number of occurence using grep -c then assigning it to a variable

Hi guys! I need to count the occurence of a certain pattern. For example the pattern is PC. the contents of the file sample.txt: A PC asdfgadfjkl asdfa PC sadfaf fdsPCasdfg if i use grep -c PC sample.txt it will display 3 as the number of occurence how do i save that number to a... (1 Reply)
Discussion started by: khestoi
1 Replies

5. Shell Programming and Scripting

Finding the nice(ni) number with PID?

Hi, is there a command that takes the PID of a process and that only diplays it's ni number? I`m pretty sure it would require pipes but I tried a few things that ended up miserably... Since the ps command doesn't show the ni unless I do ps -o ni but then I can't find a way to search the right... (2 Replies)
Discussion started by: Yakuzan
2 Replies

6. Shell Programming and Scripting

Finding PID of a process using variable substituition

Hi All, Am copying mulitple files in a directory in names File0,File1,File2 etc. I need to print separately the PID of these copies using File names. for((i=0;i<5;i++)) do mypid=`ps aux | awk '/File$i/ && !/awk/ { print $2 }'` echo PID is $mypid done It printed nothing. Thinking... (6 Replies)
Discussion started by: amio
6 Replies

7. Solaris

Finding PID of Killing process

Say I have 2 processes(perl scripts on Solaris machine) A and B. the process A kill the process B. While in the process B how do I print the PID of the process that Killed it(process A) before dieing. My process A looks like open(STATS, "ps -ef|"); while ($inputLine = <STATS>) { if... (7 Replies)
Discussion started by: enigma_007
7 Replies

8. AIX

Assigning PID for a Process

Hello Team, Is there anyway to assign a dedicated pid for a particular java process(application). Regards, Gowtham.G (5 Replies)
Discussion started by: gowthamakanthan
5 Replies

9. Shell Programming and Scripting

Grep doesn't work when assigning to variable

Hello, First of all, I'd like to say hello to all members of forum. Can You please help me with the matter described below? I am trying to fetch a data from the file to variable, I am doing this using below script: returned=`tail -50 SapLogs.log | grep -i -E "Error|"` echo $returned ... (2 Replies)
Discussion started by: jedzio
2 Replies

10. Shell Programming and Scripting

Assigning variable to output gives error with expected result

Hello, I am trying to print out the first string matching query with grep and I need your help. My scenario: Database John F 4433 Street No 88 CA Elisabeth Taylor 7733 Street No 26 ON Jack Nicholson 0133 Green Park No 34 AR John F 2 9399 Southpark No 02D UT test.sh... (6 Replies)
Discussion started by: baris35
6 Replies
dpid.h(3)							     libdaemon								 dpid.h(3)

NAME
dpid.h - Contains an API for manipulating PID files. SYNOPSIS
#include <sys/types.h> Defines #define DAEMON_PID_FILE_KILL_WAIT_AVAILABLE 1 This variable is defined to 1 iff daemon_pid_file_kill_wait() is supported. Typedefs typedef const char *(* daemon_pid_file_proc_t )(void) Prototype of a function for generating the name of a PID file. Functions const char * daemon_pid_file_proc_default (void) A function for creating a pid file name from daemon_pid_file_ident. int daemon_pid_file_create (void) Creates PID pid file for the current process. int daemon_pid_file_remove (void) Removes the PID file of the current process. pid_t daemon_pid_file_is_running (void) Returns the PID file of a running daemon, if available. int daemon_pid_file_kill (int s) Kills a running daemon, if available. int daemon_pid_file_kill_wait (int s, int m) Similar to daemon_pid_file_kill() but waits until the process died. Variables const char * daemon_pid_file_ident Identification string for the PID file name, only used when daemon_pid_file_proc is set to daemon_pid_file_proc_default(). daemon_pid_file_proc_t daemon_pid_file_proc A function pointer which is used to generate the name of the PID file to manipulate. Detailed Description Contains an API for manipulating PID files. Definition in file dpid.h. Define Documentation #define DAEMON_PID_FILE_KILL_WAIT_AVAILABLE 1 This variable is defined to 1 iff daemon_pid_file_kill_wait() is supported. Since: 0.3 See also: daemon_pid_file_kill_wait() Definition at line 82 of file dpid.h. Typedef Documentation typedef const char*(* daemon_pid_file_proc_t)(void) Prototype of a function for generating the name of a PID file. Definition at line 37 of file dpid.h. Function Documentation int daemon_pid_file_create (void) Creates PID pid file for the current process. Returns: zero on success, nonzero on failure Examples: testd.c. pid_t daemon_pid_file_is_running (void) Returns the PID file of a running daemon, if available. Returns: The PID or negative on failure Examples: testd.c. int daemon_pid_file_kill (int s) Kills a running daemon, if available. Parameters: s The signal to send Returns: zero on success, nonzero on failure int daemon_pid_file_kill_wait (int s, int m) Similar to daemon_pid_file_kill() but waits until the process died. This functions is new in libdaemon 0.3. The macro DAEMON_PID_FILE_KILL_WAIT_AVAILABLE is defined iff libdaemon supports this function. Parameters: s The signal to send m Seconds to wait at maximum Returns: zero on success, nonzero on failure (timeout condition is considered a failure) Since: 0.3 See also: DAEMON_PID_FILE_KILL_WAIT_AVAILABLE Examples: testd.c. const char* daemon_pid_file_proc_default (void) A function for creating a pid file name from daemon_pid_file_ident. Returns: The PID file path int daemon_pid_file_remove (void) Removes the PID file of the current process. Returns: zero on success, nonzero on failure Examples: testd.c. Variable Documentation const char* daemon_pid_file_ident Identification string for the PID file name, only used when daemon_pid_file_proc is set to daemon_pid_file_proc_default(). Use daemon_ident_from_argv0() to generate an identification string from argv[0] Examples: testd.c. daemon_pid_file_proc_t daemon_pid_file_proc A function pointer which is used to generate the name of the PID file to manipulate. Points to daemon_pid_file_proc_default() by default. Author Generated automatically by Doxygen for libdaemon from the source code. Version 0.14 17 Jan 2010 dpid.h(3)
All times are GMT -4. The time now is 01:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy