The parent application can set up standard output of the shell script to be the write end of a pipe that the parent can use to read status from the child.
The parent can create a named pipe (or regular file) and pass the name of that file to the shell script as an operand. The child can then write status to that file and the parent can read status from that file.
The parent can set up a signal catching function for a signal and pass its process ID to the child shell script. The child can then use:
to notify the parent that some milestone has been reached.
Use your imagination... There are lots of ways for one process to talk to another process.
This User Gave Thanks to Don Cragun For This Post:
AIX 4.3.3
I am trying to write a signal handler into a ksh shell script. I would like to capture the SIGTERM, SIGINT, and the SIGTSTP signals, print out a message to the terminal, and continue executing the script. I have found a way to block the signals:
#! /bin/ksh
SIGTERM=15
SIGINT=2... (2 Replies)
Helo,
I want to write shell script which takes back of all binaries (exe files).
and when i uninstall the upgraded system which automatically restore the old binary which we have take as back up.
can u tell me how to write such shell scripts.
Regards,
Amit (5 Replies)
I need to write a c program that uses the fork and excel system calls to run the shell script mode invoked like this: "./mode 644 ls -l" (that is the argumetns will always be 644 ls -l)
here's the mode script:
#!/bin/sh
octal="$1"
shift
find . -maxdepth 1 -perm $octal -exec $@ {} \;
... (3 Replies)
Hi ,
I do have a shell which test the connectivity using ssh, soon after the login it should use the keys Ctrl + z or Ctrl + c to exit from login promt. So how do i need to implement these . (3 Replies)
Hi ,
i have a scenario where...i have to put a check where if script is executing more than 15mins i have to kill that script and n retry again 2nd time.
i this case i can use background process to do it but i feel trap will be the efficent way to do so...
but i dont know much about it... (1 Reply)
When command is executed by forking, the console displays the status of that command. I want to suppress it.. how to do it ?
Example:
var1=`date` &
echo "hello world";
output:
hello world
+ Done var1=`date`
I want to suppress the second line "+ Done var1=`date`".
I... (10 Replies)
Hi, I'm writing a shell script where I want to call fork(). However I wrote like this "var=fork()" in c style and got this error:
"syntax error near unexpected token `(' "
How could I call fork() in shell script? Thanks in advance.
Duplicate Post - Continue Here - Please Do Not Cross Post... (0 Replies)
Hi, I'm writing a shell script where I want to call fork(). However I wrote like this "var=fork()" in c style and got this error:
"syntax error near unexpected token `(' "
How could I call fork() in shell script? Thanks in advance. (2 Replies)
Hi All,
I have a shell script(test_abc.sh) with the following shell commands, which are invoking the same shell script with different parameters.
test_abc.sh
. ./test.sh abc >> test.log
. ./test.sh xyz >> test.log
. ./test.sh pys >> test.log
. ./test.sh abc >> test.log
.
.
... (4 Replies)
Discussion started by: dev.devil.1983
4 Replies
LEARN ABOUT FREEBSD
fork
FORK(2) BSD System Calls Manual FORK(2)NAME
fork -- create a new process
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <unistd.h>
pid_t
fork(void);
DESCRIPTION
The fork() system call causes creation of a new process. The new process (child process) is an exact copy of the calling process (parent
process) except for the following:
o The child process has a unique process ID.
o The child process has a different parent process ID (i.e., the process ID of the parent process).
o The child process has its own copy of the parent's descriptors. These descriptors reference the same underlying objects, so that,
for instance, file pointers in file objects are shared between the child and the parent, so that an lseek(2) on a descriptor in the
child process can affect a subsequent read(2) or write(2) by the parent. This descriptor copying is also used by the shell to
establish standard input and output for newly created processes as well as to set up pipes.
o The child process' resource utilizations are set to 0; see setrlimit(2).
o All interval timers are cleared; see setitimer(2).
o The child process has only one thread, corresponding to the calling thread in the parent process. If the process has more than one
thread, locks and other resources held by the other threads are not released and therefore only async-signal-safe functions (see
sigaction(2)) are guaranteed to work in the child process until a call to execve(2) or a similar function.
RETURN VALUES
Upon successful completion, fork() returns a value of 0 to the child process and returns the process ID of the child process to the parent
process. Otherwise, a value of -1 is returned to the parent process, no child process is created, and the global variable errno is set to
indicate the error.
ERRORS
The fork() system call will fail and no child process will be created if:
[EAGAIN] The system-imposed limit on the total number of processes under execution would be exceeded. The limit is given by the
sysctl(3) MIB variable KERN_MAXPROC. (The limit is actually ten less than this except for the super user).
[EAGAIN] The user is not the super user, and the system-imposed limit on the total number of processes under execution by a single
user would be exceeded. The limit is given by the sysctl(3) MIB variable KERN_MAXPROCPERUID.
[EAGAIN] The user is not the super user, and the soft resource limit corresponding to the resource argument RLIMIT_NPROC would be
exceeded (see getrlimit(2)).
[ENOMEM] There is insufficient swap space for the new process.
SEE ALSO execve(2), rfork(2), setitimer(2), setrlimit(2), sigaction(2), vfork(2), wait(2)HISTORY
The fork() function appeared in Version 6 AT&T UNIX.
BSD May 31, 2013 BSD