|
|||||||
| Forums | Search Forums | Register | Forum Rules | Man Pages | Albums | FAQ | Members | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
|
|
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
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 |
| Sponsored Links | ||
|
|
#2
|
|||
|
|||
|
Code:
echo "PID : $!" That "$!" is the SUB_PID. |
| Sponsored Links | ||
|
|
#3
|
|||
|
|||
|
Thank you jim mcnamara for reply.
$! is returning the parent PID only, which is not full filling my requirement. Once the parent PID is completed, SUB PROCESS will start and it will have a new PID. I should grep the sub process PID in while loop & till the completion of sub processes i need to wait and then i should break from the loop Last edited by duddukuri; 12-06-2012 at 01:48 AM.. |
|
#4
|
|||
|
|||
|
I am able to resolve my issue. when i am using the ps -ef, it is not giving the complete command line arguments. That is the reason for the issue. ps auxw will return the complete command line arguments. Command Having Issue: Code:
SUB_PID=`ps -ef | grep custom_utility | grep "./input.txt" | grep -v 'grep' | awk '{print $2}'`Working One: Code:
SUB_PID=`ps auxw | grep custom_utility | grep "./input.txt" | grep -v 'grep' | awk '{print $2}'`Last edited by Franklin52; 12-19-2012 at 02:24 AM.. Reason: Please use code tags for data and code samples |
| Sponsored Links | ||
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Assigning PID for a Process | gowthamakanthan | AIX | 5 | 05-02-2012 06:32 PM |
| Finding PID of a process using variable substituition | amio | Shell Programming and Scripting | 6 | 03-12-2009 08:03 AM |
| number of occurence using grep -c then assigning it to a variable | khestoi | UNIX for Dummies Questions & Answers | 1 | 02-23-2009 02:59 PM |
| Problem with assigning output of grep + awk to a variable | meheretoknow | Shell Programming and Scripting | 5 | 12-16-2008 03:50 AM |
| Need to get pid of a process and have to store the pid in a variable | samudha | UNIX for Dummies Questions & Answers | 7 | 08-05-2008 03:24 AM |
|
|