Application Startup in Virtual Partitions


Each Virtual Partition is like a separate server. The applications running in a vPar run independently of applications and activity running in other vPars. All applications in a vPar require startup scripts to be run as they would on any system ( please see the non-vPar-specific section of this chapter if you need information on how HP-UX startup and shutdown operates.)

In the vPar used in this example we have a variety of applications running, including Broadvision. Let's take a look at /etc/rc.config.d , where the configuration variable scripts are located, to see what bv files (those that relate to Broadvision) exist:

 #  ll  grep bv  -rwxr-xr-x   1 root       sys              9 Sep 26 09:31 bv #  cat bv  BV_CTL=1 # 

This listing shows the bv file and its contents. The BV_CTL=1 variable indicates that Broadvision is to be started when the system boots.

Starting the bv application processes results in several Broadvision- related daemons being started, including those shown in the following listing:

[View full width]
 
[View full width]
# ps -ef grep bv1 pbcombv 3111 3096 0 Sep 26 ? 0:04 bvconf_srv p_1221_3 -f -install_name bv1to1/ graphics/ccc.gif bvconf_srv_a pbcombv 3404 3096 0 Sep 26 ? 1:19 cntdb p_1221_5 -install_name bv1to1/cntdb_1 pbcombv 3707 3096 0 Sep 26 ? 0:20 genericdb p_1221_8 -install_name bv1to1/ graphics/ccc.gif genericdb_1 pbcombv 34793096 0 Sep26 ? 0:05 cntdb p_1221_7 -install_name bv1to1/ DiscussionForum_cntdb_1 root 7572 7232 0 13:17:33 pts/0 0:00 grep bv1 #

You can see that there are many processes related to the bv1to1 application running on this system. These are started automatically as part of the startup structure of HP-UX. The following listing shows the link in /sbin/ rc1.d , for run level one, and /sbin/ rc2.d , for run level two, for bv .

 # ll /sbin/rc1.d  grep bv lrwxr-xr-x   1 root       sys             15 Sep 26 10:42 K105bv -> /sbin/init.d/bv # ll /sbin/rc2.d  grep bv lrwxr-xr-x   1 root       sys             15 Sep 26 10:41 S930bv -> /sbin/init.d/bv # 

The bv kill script, as indicated by the "K" preceding the link, is shown in /sbin/ rc1.d , and the start script, as indicated by the "S" preceding the link, is shown in /sbin/ rc2.d .

The script /sbin/init.d/bv, which is shown in the links, runs a variety of commands at both startup and shutdown of the Virtual Partition. The following listing shows the /sbin/init.d/bv script:

[View full width]
 
[View full width]
# # <Insert comment about your script here> # # Allowed exit values: # 0 = success; causes "OK" to show up in checklist. # 1 = failure; causes "FAIL" to show up in checklist. # 2 = skip; causes "N/A" to show up in the checklist. # Use this value if execution of this script is overridden # by the use of a control variable, or if this script is not # appropriate to execute for some other reason. # 3 = reboot; causes the system to be rebooted after execution. # 4 = background; causes "BG" to show up in the checklist. # Use this value if this script starts a process in background mode. # Input and output: # stdin is redirected from /dev/null # # stdout and stderr are redirected to the /etc/rc.log file # during checklist mode, or to the console in raw mode. PATH=/usr/sbin:/usr/bin:/sbin export PATH # NOTE: If your script executes in run state 0 or state 1, then /usr might # not be available. Do not attempt to access commands or files in # /usr unless your script executes in run state 2 or greater. Other # file systems typically not mounted until run state 2 include /var # and /opt. rval=0 # Check the exit value of a command run by this script. If non-zero, the # exit code is echoed to the log file and the return value of this script # is set to indicate failure. set_return() { x=$? if [ $x -ne 0 ]; then echo "EXIT CODE: $x" rval=1 # script FAILed fi } # Kill the named process(es). # =<search pattern for your process> killproc() { pid=`ps -el awk '( ($NF ~ /'""'/) && ( != mypid) && ( != mypid) ){ print graphics/ccc.gif }' mypid=$$ ` if [ "X$pid" != "X" ]; then if kill "$pid"; then echo " stopped" else rval=1 echo "Unable to stop " fi fi } case in 'start_msg') # Emit a _short_ message relating to running this script with # the "start" argument; this message appears as part of the checklist. echo "Starting the BroadVision subsystem" ;; 'stop_msg') # Emit a _short_ message relating to running this script with # the "stop" argument; this message appears as part of the checklist. echo "Stopping the BroadVision subsystem" ;; 'start') # source the system configuration variables if [ -f /etc/rc.config.d/bv ] ; then . /etc/rc.config.d/bv else echo "ERROR: /etc/rc.config.d/bv defaults file MISSING" fi # Check to see if this script is allowed to run... if [ "$BV_CTL" != 1 ]; then rval=2 else # Execute the commands to start your subsystem su - pbcombv -c "/opt/bv1to1/bin/bvconf execute" : fi ;; 'stop') # source the system configuration variables if [ -f /etc/rc.config.d/bv ] ; then . /etc/rc.config.d/bv else echo "ERROR: /etc/rc.config.d/bv defaults file MISSING" fi # Check to see if this script is allowed to run... if [ "$BV_CTL" != 1 ]; then rval=2 else : # Execute the commands to stop your subsystem su - pbcombv -c "/opt/bv1to1/bin/bvconf shutdown" fi ;; *) echo "usage:
 # # <Insert comment about your script here> # # Allowed exit values: # 0 = success; causes "OK" to show up in checklist. # 1 = failure; causes "FAIL" to show up in checklist. # 2 = skip; causes "N/A" to show up in the checklist. # Use this value if execution of this script is overridden # by the use of a control variable, or if this script is not # appropriate to execute for some other reason. # 3 = reboot; causes the system to be rebooted after execution. # 4 = background; causes "BG" to show up in the checklist. # Use this value if this script starts a process in background mode. # Input and output: # stdin is redirected from /dev/null # # stdout and stderr are redirected to the /etc/rc.log file # during checklist mode, or to the console in raw mode. PATH=/usr/sbin:/usr/bin:/sbin export PATH # NOTE: If your script executes in run state 0 or state 1, then /usr might # not be available. Do not attempt to access commands or files in # /usr unless your script executes in run state 2 or greater. Other # file systems typically not mounted until run state 2 include /var # and /opt. rval=0 # Check the exit value of a command run by this script. If non-zero , the # exit code is echoed to the log file and the return value of this script # is set to indicate failure. set_return() { x=$? if [ $x -ne 0 ]; then echo "EXIT CODE: $x" rval=1 # script FAILed fi } # Kill the named process(es). # $1=<search pattern for your process> killproc() { pid=`ps -el  awk '( ($NF ~ /'"$1"'/) && ($4 != mypid) && ($5 != mypid) ){ print graphics/ccc.gif $4 }' mypid=$$ ` if [ "X$pid" != "X" ]; then if kill "$pid"; then echo "$1 stopped " else rval=1 echo "Unable to stop $1" fi fi } case $1 in 'start_msg') # Emit a _short_ message relating to running this script with # the "start" argument; this message appears as part of the checklist. echo "Starting the BroadVision subsystem" ;; 'stop_msg') # Emit a _short_ message relating to running this script with # the "stop" argument; this message appears as part of the checklist. echo "Stopping the BroadVision subsystem" ;; 'start') # source the system configuration variables if [ -f /etc/rc.config.d/bv ] ; then . /etc/rc.config.d/bv else echo "ERROR: /etc/rc.config.d/bv defaults file MISSING" fi # Check to see if this script is allowed to run... if [ "$BV_CTL" != 1 ]; then rval=2 else # Execute the commands to start your subsystem su - pbcombv -c "/opt/bv1to1/bin/bvconf execute" : fi ;; 'stop') # source the system configuration variables if [ -f /etc/rc.config.d/bv ] ; then . /etc/rc.config.d/bv else echo "ERROR: /etc/rc.config.d/bv defaults file MISSING" fi # Check to see if this script is allowed to run... if [ "$BV_CTL" != 1 ]; then rval=2 else : # Execute the commands to stop your subsystem su - pbcombv -c "/opt/bv1to1/bin/bvconf shutdown" fi ;; *) echo "usage: $0 {startstopstart_msgstop_msg}" rval=1 ;; esac exit $rval 
{startstopstart_msgstop_msg}" rval=1 ;; esac exit $rval

Note that all of the start and stop information related to Broadvision is present in this file because this script is run for both kill ( K ) and start ( S ). Note also the line

 if [ "$BV_CTL" != 1 ]; then 

which checks to see if the variable we viewed earlier in /etc/rc.config.d/bv is equal to one as it was when we checked the file.

The installation and startup of Broadvision is required in all Virtual Partitions in which you want to run this application. What is taking place in vPar used in this example is what you would see in every vPar running Broadvision.



HP-UX 11i Systems Administration Handbook and Toolkit
HP-UX 11i Systems Administration Handbook and Toolkit (2nd Edition)
ISBN: 0131018833
EAN: 2147483647
Year: 2003
Pages: 301

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net