mirror of https://github.com/tLDP/LDP
32 lines
937 B
Bash
32 lines
937 B
Bash
#!/bin/bash
|
|
# spawn.sh
|
|
|
|
|
|
PIDS=$(pidof sh $0) # Process IDs of the various instances of this script.
|
|
P_array=( $PIDS ) # Put them in an array (why?).
|
|
echo $PIDS # Show process IDs of parent and child processes.
|
|
let "instances = ${#P_array[*]} - 1" # Count elements, less 1.
|
|
# Why subtract 1?
|
|
echo "$instances instance(s) of this script running."
|
|
echo "[Hit Ctl-C to exit.]"; echo
|
|
|
|
|
|
sleep 1 # Wait.
|
|
sh $0 # Play it again, Sam.
|
|
|
|
exit 0 # Not necessary; script will never get to here.
|
|
# Why not?
|
|
|
|
# After exiting with a Ctl-C,
|
|
#+ do all the spawned instances of the script die?
|
|
# If so, why?
|
|
|
|
# Note:
|
|
# ----
|
|
# Be careful not to run this script too long.
|
|
# It will eventually eat up too many system resources.
|
|
|
|
# Is having a script spawn multiple instances of itself
|
|
#+ an advisable scripting technique.
|
|
# Why or why not?
|