09-19-2007
Take the "|| exit 1" out of your parent.
Put the exit command in the child instead of "what goes here..."
If the condition you're testing for is acceptable, exit 0 if your child script is finished. If it is not acceptible, then exit 1 (or whatever number would be helpful... Obviously you would not exit your script after every test. In those cases, set a flag you can check before exiting.
If you want more than just acceptible/not acceptible status for a test's results then pick a number that means something else.
You would want to somehow document the numbers you choose so that if you forget why your child process returned an exit status of 3 you can understand when reviewing your documentation/comments for the script.
For example, say you were expecting a string of 8 characters, got 9, but it's okay with 9 anyway, your child script might return an exit status of 3. In this case the 3 would mean something like "the script ran succesfully but there was a non critical issue." You could also use 3 to mean it failed because such and such happened...
In your parent script, you can test for the exit status of the child script right after calling the child script.
Don't ignore commonly expected standards though, so if the child script returns 0 then it was successful. If it returns 1 it failed. Beyond that, I believe it is up to you.
It's a good idea to just get in the habit of returning exit status from every script you write.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I don't follow what these are...
this is what my text says...
"When a process is started, a duplicate of that process is created. This new process is called the child and the process that created it is called the parent. The child process then replaces the copy for the code the parent... (1 Reply)
Discussion started by: xyyz
1 Replies
2. UNIX for Dummies Questions & Answers
Hello all,
I have gone through the search and looked at posting about idle users and killing processes. Here is my question I would like to kill an idle user ( which I can do) but how can I asure that all of his process is also killed whit out tracing his inital start PID. I have tried this on a... (4 Replies)
Discussion started by: larry
4 Replies
3. Shell Programming and Scripting
Hello.
I have a global function name func1() that I am sourcing in from script A. I call the function from script B. Is there a way to find out which script called func1() dynamically so that the func1() can report it in the event there are errors?
Thanks (2 Replies)
Discussion started by: yoi2hot4ya
2 Replies
4. UNIX for Advanced & Expert Users
Hi all,
I am writing a script which calls other third party scripts that perform numerous actions. I have no control over these scripts.
My problem is, one of these scripts seems to execute and do what it is meant to do, but my calling / parent script always exits at that point. I need to... (4 Replies)
Discussion started by: mark007
4 Replies
5. Programming
i used function fork().
so i made two process.
parent process accepted socket fd and writing to shared memory.
then now. how can child process share parent's socket fd?
is this possible?
Thanks in advance (1 Reply)
Discussion started by: andrew.paul
1 Replies
6. Shell Programming and Scripting
PARENT SCRIPT
#!/bin/ksh
#
. $HOME/.profile
. /etl/estdm2/DEV/scripts/DM_ENV_VARS.ksh DEV DB
echo "CALLING CHILD SCRIPT"
. /${SCRIPT_DIR}/DM_CHild.ksh -x HRDATA.dat -e $sEnv -d Wait_Time
*****THE PARENT SCRIPT EXITS HERE ********
*****whether the file is found or not*******
... (2 Replies)
Discussion started by: sumeet
2 Replies
7. Homework & Coursework Questions
1. The problem statement, all variables and given/known data:
I need to make an program that in a loop creates one parent and five children with fork(). The problem i'm trying to solve is how to delete the parent and child of the childīs process.
2. Relevant commands, code, scripts,... (0 Replies)
Discussion started by: WhiteFace
0 Replies
8. Shell Programming and Scripting
Hi everyone
i am very new to linux , working on bash shell.
I am trying to solve the given problem
1. Create a process and then create children using fork
2. Check the Status of the application for successful running.
3. Kill all the process(threads) except parent and first child... (2 Replies)
Discussion started by: vizz_k
2 Replies
9. UNIX for Dummies Questions & Answers
does anyone know how to check in an 'if' statement if a particular directory is a child directory of a particular directory?
help ~ (2 Replies)
Discussion started by: ymc1g11
2 Replies
10. Shell Programming and Scripting
I am having a parent scripts which reads a file with child scripts name.
I need to read one by one child script , execute it and
1. If child script fails send mail to the team with the log file
2. If the child script executes fine then proceed with the next child script execution.
#!... (3 Replies)
Discussion started by: nw2unx123
3 Replies
LEARN ABOUT HPUX
xtmanagechb
XtManageChildren() XtManageChildren()
Name
XtManageChildren - bring an array of widgets under their parent's geometry management.
Synopsis
void XtManageChildren(children, num_children)
WidgetList children;
Cardinal num_children;
Inputs
children Specifies an array of child widgets. The widgets must all be siblings and must be of class RectObj or any subclass thereof.
num_children
Specifies the number of children in the array.
Description
XtManageChildren() brings a list of widgets created with XtCreateWidget() under the geometry management of their parent. All widgets
(except shell widgets) must be managed in order to be visible. Managing a widget will generally make it visible, unless its
XtNmappedWhenManaged resource is False.
The "Algorithm" section below details the procedure followed by XtManageChildren().
Usage
To manage a single widget, you can use XtManageChild(). To unmanage widgets, use XtUnmanageChild() and XtUnmanageChildren().
If you are going to manage multiple children of the same managed and realized parent, it is more efficient to place those children widget
into an array and call XtManageChildren() just once than it is to manage them individually. The former technique results in only a single
call to the parent's change_managed() method. If you are creating widgets before the widget tree has been realized, however, managing them
one at a time is fine.
Algorithm
XtManageChildren() performs the following:
o Issues an error if the children do not all have the same parent or if the parent is not a subclass of compositeWidgetClass.
o Returns immediately if the common parent is being destroyed; otherwise, for each unique child on the list, XtManageChildren() ignores
the child if it already is managed or is being destroyed, and marks it otherwise.
o If the parent is realized XtManageChildren() does the following:
- Calls the change_managed() method of the widgets' parent.
- Calls XtRealizeWidget() on each marked child that is unrealized.
- Maps each marked child that has its XtNmappedWhenManaged resource True.
The management of children is independent of the creation and ordering of the children. There is no special list of managed children; the
layout routine of the parent should loop through the list of all children and simply ignore those that are not managed (see XtIsManaged()).
Structures
typedef Widget *WidgetList;
See Also
XtCreateManagedWidget(1), XtIsManaged(1), XtManageChild(1), XtMoveWidget(1), XtRealizeWidget(1), XtSetMappedWhenManaged(1), XtUnman-
ageChild(1), XtUnmanageChildren(1).
Xt - Widget Lifecycle XtManageChildren()