Infinite while loop script shows more than one process


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Infinite while loop script shows more than one process
# 1  
Old 06-22-2012
Infinite while loop script shows more than one process

Hi,
I have a script which triggers an infinite loop.
Code:
#!bin/bash
trig=`ls /home/trig.tch |wc -l`
function callj {
some commands...
 
}
 
while [ $trig -ne 0 ]
do
callj &
done

The number of process after doing a ps -ef |grep Mon.sh returns
processes even after the script is killed by deleting the trigger file.

Why could this be happening.?

Thanks,
Chetan.C
# 2  
Old 06-22-2012
Quote:
Originally Posted by chetan.c
Hi,
I have a script which triggers an infinite loop.
Code:
#!bin/bash
trig=`ls /home/trig.tch |wc -l`
function callj {
some commands...
 
}
 
while [ $trig -ne 0 ]
do
callj &
done

The number of process after doing a ps -ef |grep Mon.sh returns
processes even after the script is killed by deleting the trigger file.

Why could this be happening.?

Thanks,
Chetan.C
"trig" value doesnt change in loop..and processes goes on.
deleting the trigger file doesnt cause to any change..because of , the trig value is assigned to a value (..wc -l) and not be considered again
note : trig value is always 1

Last edited by ygemici; 06-22-2012 at 05:59 AM..
This User Gave Thanks to ygemici For This Post:
# 3  
Old 06-22-2012
It is because your trig variable gets defined on start with value.

While loop then executes, but after you delete that file, the variable is still the same inside the script.

Don't use wc -l, rather use [code]-f[code]

Code:
while [ -f /home/trig.tch ]
do
your_function &
done

IF you insist on using the ls | wc -l , you will need to define that inside the while loop.
This User Gave Thanks to Peasant For This Post:
# 4  
Old 06-22-2012
What is your requirement?
With trig=`ls /home/trig.tch |wc -l`, It will always give 1 if file is there.

Do you want to call the function only if file exists?


EDIT: Similar solution already posted at the same time. The post might not be useful.
This User Gave Thanks to clx For This Post:
# 5  
Old 06-22-2012
SmilieThanks all!!
That was the issue.
@ Peasant Yes will change it now to the condition for checking for the file.


Thanks,
Chetan.C
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Read function is going in infinite in another script having while loop

Hello Experts, I have created one user confirmation process that will ask for user input. I have created one func for it. The issue is if i call it as normal then it works fine but if i am calling it in another script(in while loop) . It is going in infinite loop and not asking for user input. ... (8 Replies)
Discussion started by: looney
8 Replies

2. Programming

Nmap shell script goes in infinite loop

My script’s output goes in infinite loop Below is my script: Nmap() { while read -r line do name="$line" echo "$name" count=$line nmap -oG output.txt -T4 -f -iL iplist.txt $line1 done < iplist.txt } Nmap ................................................................. ... (2 Replies)
Discussion started by: sk151993
2 Replies

3. Shell Programming and Scripting

Calling a script from a shell that needs to cancel out of infinite loop

I am writing a shell script that calls this oracle utility to get some information about the DB that I need for the script https://docs.oracle.com/cd/B16240_01/doc/em.102/e15294/options.htm This is the command that I am running: $ORACLE_HOME/OPatch/opatch lsinventory -details | grep -i... (1 Reply)
Discussion started by: guessingo
1 Replies

4. Shell Programming and Scripting

Select command going to infinite loop after running the script

cd /opt/et/WAS/apps/8.0 find . -name "HostIntegration.properties" -o -name "HostSocket.properties" -o -name "environment.properties" 2> /dev/null | awk -F '' '{print $4}'|awk '!x++' | cat>/home/cbadmin/file1.txt cd /home/cbadmin/ PS3='Please enter a number from list of applications==>:' select... (3 Replies)
Discussion started by: bhas85
3 Replies

5. Shell Programming and Scripting

My for loop decides to become an infinite loop?

Hi, I was debating if I should put this in the dummies or scripts section, I apologize in advance if I chose poorly. Fairly new to Unix and BASH scripting but I thought I made it fairly well given my limited understanding. However, the output indicates that it's looping and I'm ending up with a... (5 Replies)
Discussion started by: gotreef
5 Replies

6. Shell Programming and Scripting

Script with infinite loop stops after sometime

Hi I am working on a server that is set up and maintained by a third party. It seems whenever I run bash scripts in the background (with a &) with while loops in them they seem to me killed in around 2.5 hours. ( I am running them as a normal user with no special privileges ) . Is there a... (3 Replies)
Discussion started by: pkabali
3 Replies

7. Shell Programming and Scripting

Infinite while loop

what is the difference between while:,while true and while false? (6 Replies)
Discussion started by: proactiveaditya
6 Replies

8. Shell Programming and Scripting

Script to run infinite loop

Hi all, I have a script which triggers batch admin manager and gets the top 10 jobs and their status info. the output of this script is the list of all these jobs. I want to run this in infinite loop which will show top 100 jobs' status. the script is as follows #!/bin/sh exec &> capture1.txt... (1 Reply)
Discussion started by: digitalrg
1 Replies

9. Shell Programming and Scripting

infinite loop to check process is running

Hi, I got a simple script working to check if a process is running and then email if it is not running anymore. My scenario is that I need to make sure the process is always running so instead of running the below script via cron I think it is better to a have a looping script to check... (12 Replies)
Discussion started by: yabai
12 Replies

10. Shell Programming and Scripting

Running a script in INFINITE LOOP

Hi All, I have a requirement as below. I supposed to get a file from Source system once in a month. But we dont know when the source system will send the file. My script has to wait for that file in LOOP once it gets the file then it has to FTP the file. I thought of scheduling the job... (5 Replies)
Discussion started by: Raamc
5 Replies
Login or Register to Ask a Question