Sponsored Content
Top Forums Shell Programming and Scripting exiting a child without stopping the parent Post 302136808 by [MA]Flying_Meat on Wednesday 19th of September 2007 08:38:12 PM
Old 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

what are parent and child processes all about?

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

kill parent and child

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

Parent/Child Processes

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

Child Killing Parent

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

To share fd between parent and child

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 exiting with child script

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

Need help with deleting childīs parent and child subprocess

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

forking a child process and kill its parent to show that child process has init() as its parent

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

parent and child directory

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

Child exiting and not returning to parent script

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
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()
All times are GMT -4. The time now is 03:39 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy