I'm really new to scripting and was wondering if you could help me out. I have the following script that I inherited:
So, when I type in
it runs "MyProgram". However, since I have many programs that I have to run using this script at the same time, I typically open up many terminals and execute the script on the programs individually. However, this is beginning to be painful. So, I was wondering, if there's any way that I could type in something similar to:
And have them all run at the same time. A nudge in the right direction would be very much appreciated.
This should do the trick. '$*' holds the positional parameters that you use when calling "run-all-agents". It executes and starts "run-any-agent" in the background.
So, if I understood this right, you're suggesting that I write another script called "run-all-agents" to execute the "run-any-agent" script - right?
Quote:
'$*' holds the positional parameters that you use when calling "run-all-agents".
What do you mean by "positional parameters"? So, will I be calling the script like this?
I'll mess with this a little and report back. It might also be nice to read the programs I want to run off a file (rather than "manually" typing them in). Anyway, I'll be back.
Thanks,
DTW
---------- Post updated at 04:01 PM ---------- Previous update was at 03:50 PM ----------
Quote:
I'll mess with this a little and report back.
The script seems to run just fine. I tried running two programs for now using the command:
However, I was wondering if there's a clean way to stop the programs, though. I used to be able to hit Ctrl+C to stop them but I'm not sure that is working very well now. They still run when I press the "Ctrl" key followed by the "C" key. Is there a script that can be written to halt the running programs cleanly too?
Thanks,
DTW
Last edited by DTriniWay; 01-20-2010 at 05:06 PM..
Is there a script that can be written to halt the running programs cleanly too?
Sure, but it's a little tricky. You would first need to find out the PID of the agent you started. You could do this with the 'ps' command.
The PID in the above example is 13112. The tricky part is you don't want to leave any child/zombie processes that may have spawned from your script. If it does spawn extra processes then your script will have to find all the children and kill them in order. The last process you would kill would be 13112 since that is your original process. It's definitely doable though. Hope that makes sense.
** NOTE: Notice that I left a space after MyProgramN in my grep statement. This was done to ensure you had the right process for those cases when you might have MyProgram1 and MyProgram11 running. If you're looking for MyProgram1, then you want to make sure you don't accidentally catch MyProgram1N.
Sure, but it's a little tricky. You would first need to find out the PID of the agent you started. You could do this with the 'ps' command.
Thanks for your reply. Cool. So far I've been doing:
And then I scroll through the list to find the PIDs. Sometimes when I use the "kill -9" command, though, it doesn't seem to kill the process. I'm not sure why.
I'm not sure what "-ef" and "-v" do but I can look them up.
Quote:
The PID in the above example is 13112. The tricky part is you don't want to leave any child/zombie processes that may have spawned from your script. If it does spawn extra processes then your script will have to find all the children and kill them in order. The last process you would kill would be 13112 since that is your original process. It's definitely doable though. Hope that makes sense.
Yes, it makes a lot of sense. My next question then would be: How do I find out all the children or zombie processes and then go ahead killing them nicely? This way, then I'd have a neat way (thanks to you) to start the programs and then another neat way to kill them all. It would save me a lot hassle. I must say that scripts are cool. :-)
Thanks,
DTW
P.S:
Quote:
NOTE: Notice that I left a space after MyProgramN in my grep statement. This was done to ensure you had the right process for those cases when you might have MyProgram1 and MyProgram11 running. If you're looking for MyProgram1, then you want to make sure you don't accidentally catch MyProgram1N.
Hmm - I'd have to think about what you wrote, but, thank you for clearing that up.
---------- Post updated at 04:55 PM ---------- Previous update was at 04:34 PM ----------
So, I tried:
After I typed:
But nothing happened...Did I miss something?
DTW
---------- Post updated at 05:15 PM ---------- Previous update was at 04:55 PM ----------
Quote:
I'm not sure what "-ef" and "-v" do but I can look them up.
So, "-e" seems to be a way to use a pattern of some sort. I'm not sure what the "f" after the "e" does, really.
"-v" specifies the string that we don't want to grep.
would mean look for all files that DON'T have "abc" in them? Does this sound correct?
I want to run a C program from my BASH script. Here's some very basic simplified code of my bash script:
#!/bin/bash
echo "Run C program"
./main.c
echo "Ran C program"
Here's my main.c:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv)
{
... (3 Replies)
I have a program which I can run on the command line like below and works fine
/nethome/chrisd/HSeis/TommyCD/TommyCD-1101/bin/raytrac vmod=npt10-z30.vmod srfile=jcdint.sc rcfile=jcdint.rc phases="SP FS" level=twop format="X T" dtau=0.1 mdacc=0.5 mindist=0.1 maxitertp=25 ray=npt10-z30.ry... (0 Replies)
Lets get some stuff out of the way before the question. I am currently running FreeBSD 7.0 on a VirtualBox virtual machine. I do not know much about Unix or FreeBSD, though I do run linux at home. My boss gave me some files that he says are a unix version of the program Dynflow. The Programs... (0 Replies)
hi ,
i need to run a parallel program .
for example;
program1
{
array=" the second program should called here : program 2"
the execution should continue
}
the 2nd program should recieve an array of information as argument and it should... (4 Replies)
Hi there! I tried to search for something like this here but couldn't find anything. I need to run a specific program when linux starts up. I need to run it after the rp-pppoe has started because this prog needs internet connection.
I start the program by entering ./dynix start (its in my home... (4 Replies)
Hi.Iam new to Linux.i got linux 7.0 pro and dont know how to run programs. I want a perl interputer and i know i installed one but how do i run it ??? Also how do i run a C or C++ editor ?and how do i run cron ? (3 Replies)
This is not a question, but rather a simple how-to for
programmers who are new to the UNIX environment.
I too,am new to UNIX.
First I developed a few programs on my box and perfected them
until they were satisfactory for execution.
Problem was however, that once i compiled and all that,... (2 Replies)
How can I make a program run automatically at a certain time of day?
My problem is I need to make a small backup program that will back up a few files every day? (3 Replies)
Just getting into the Unix command line programming and am unable to run any program I write. I am using a Makefile and the source is compiling but when I enter the name of the output file I get back:
bash: lab01exe.out: command not found
I'm sure I am just dooing something simple... (2 Replies)