HP/UX compared to Tru64 ..
setld list = swlist
sysman = sam, see samlog for commands
useradd etc, vipw still works, use pwck to check for syntax errors
df = df, bdf (bdf looks like Tru64’s df)
/etc/default/security # Usually empty, contains security config.
Auditing: only on TRUSTED System in /.secure/etc/audfile*
use ‘sam’ to make a trusted system.
hwmgr show = ioscan , machinfo , ioscan -fk , ioscan -fun
dxkerneltuner = kmtune (text 11iv1) , kctune (11iv2)
MAKEDEV = mksf,lssf,insf,rmsf
rmsf -H
ioscan; insf = install new devices
ioscan -funeC disk # List Bootpath for disks ACPI
on console: map -r fs
/etc/rc.config = /etc/rc.config.d/*, actually rc.config is a script that sources ALL files in rc.config.c
Devices :
/dev/tape/c#t#d#[OPT]
| | |
| | - LUN
| ___ TARGET
| ____ INSTANCE (Controller)
sys_check = print_manifest, xstm , cfg2html
Man pages
HP/UX does not have an ‘apropos’ command but uses the default ‘man -k’ instead.
Create the apropos database with
catman -w
Make Posix-Shell a little more usable
Edit $HOME/.dtprofile, uncomment DTSOURCEPROFILE=true
$HOME/.profile must contain
ENV=$HOME/.shrc
export ENV
$HOME/.shrc contains
HISTFILE=~/.sh_history
HISTSIZE=500
-, +, bsp, space to enter ‘vi’ style history
Or even better with EMACS style :
Add to .shrc (.profile or /etc/profile are not always picked up)
set -o emacs
alias -x __A=`echo “\020”` # up arrow = ^p = back a command
alias -x __B=`echo “\016”` # down arrow = ^n = down a command
alias -x __C=`echo “\006”` # right arrow = ^f = forward a character
alias -x __D=`echo “\002”` # left arrow = ^b = back a character
alias -x __H=`echo “\001”` # home = ^a = start of line
---———–
You can also switch back and forth between ‘vi’ and ’emacs’ Mode
set -o vi # Switch to ‘vi’ Mode
set -o emacs #
LVM
# lvlnboot -v
Boot Definitions for Volume Group /dev/vg00:
Physical Volumes belonging in Root Volume Group:
/dev/dsk/c2t6d0 (10/0/15/0.6.0) – Boot Disk
Boot: lvol1 on: /dev/dsk/c2t6d0
Root: lvol3 on: /dev/dsk/c2t6d0
Swap: lvol2 on: /dev/dsk/c2t6d0
Dump: lvol2 on: /dev/dsk/c2t6d0, 0
Create a new Volumegroup
pvcreate (-f) /dev/rdsk/c2t5d0 # initalize Disk
mkdir /dev/cg01
mknod /dev/cg01/group c 64 0x010000 (0xNN0000 must be unique)
vgcreate (-l 4) (-f) vg01 /dev/dsk/c2t5d0 # -l N-devices max
lvcreate (-m 1) -l 100 vg01 # Create Volume with l extents
lvextend -m1 vg01 # Add mirror
lvextend -l 1000 # Increase size to 1000
lvreduce -l 500 # Shrink size to 500 with data loss
vgscan -a # Scan all disks for LVM data, add to /etc/lvmtab
vgdisplay -v # Display config for volgroup, shows volumes, too.
also see: pvmove on how to move extents from one disk to another
LVM: remove volumegroups
# vgdisplay -v /dev/vg01 | grep “LV Name”
LV Name /dev/vg01/lvol1
LV Name /dev/vg01/gugus
LV Name /dev/vg01/data
LV Name /dev/vg01/app
# lvremove -f /dev/vg01/lvol1
// The quick variant would be :
# vgdisplay -v /dev/vg01 | grep “LV Name” | xargs -n1 lvremove -f
# vgremove /dev/vg01
Volume group “/dev/vg01” has been successfully removed.
#
// also remove the /dev/vg01 directory !
# rm -rf /dev/vg01
LVM: Create and Delete a Mirror
# ioscan -funC disk
Class I H/W Path Driver S/W State H/W Type Description
=======================================================================
disk 0 10/0/14/0.0.0 sdisk CLAIMED DEVICE MITSUMI CD-ROM FX4820T!B
/dev/dsk/c0t0d0 /dev/rdsk/c0t0d0
disk 1 10/0/15/0.5.0 sdisk CLAIMED DEVICE QUANTUM Atlas4-9LVD
/dev/dsk/c2t5d0 /dev/rdsk/c2t5d0
disk 2 10/0/15/0.6.0 sdisk CLAIMED DEVICE QUANTUM Atlas4-9LVD
/dev/dsk/c2t6d0 /dev/rdsk/c2t6d0
# vgdisplay -v /dev/vg00 | grep Name
VG Name /dev/vg00
LV Name /dev/vg00/lvol1
LV Name /dev/vg00/lvol2
LV Name /dev/vg00/lvol3
LV Name /dev/vg00/lvol4
LV Name /dev/vg00/lvol5
LV Name /dev/vg00/lvol6
LV Name /dev/vg00/lvol7
LV Name /dev/vg00/lvol8
PV Name /dev/dsk/c2t6d0
# pvcreate -f /dev/rdsk/c2t5d0
# vgextend /dev/vg00 /dev/dsk/c2t5d0
Volume group “/dev/vg00” has been successfully extended.
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf
# lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c2t5d0
The newly allocated mirrors are now being synchronized. This operation will
take some time. Please wait ….
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf
# lvdisplay -v /dev/vg00/lvol1
--- Logical volumes —
LV Name /dev/vg00/lvol1
VG Name /dev/vg00
LV Permission read/write
LV Status available/syncd
Mirror copies 1
Consistency Recovery MWC
Schedule parallel
LV Size (Mbytes) 144
Current LE 36
Allocated PE 72
Stripes 0
Stripe Size (Kbytes) 0
Bad block off
Allocation strict/contiguous
IO Timeout (Seconds) default
--- Distribution of logical volume —
PV Name LE on PV PE on PV
/dev/dsk/c2t6d0 36 36
/dev/dsk/c2t5d0 36 36
--- Logical extents —
LE PV1 PE1 Status 1 PV2 PE2 Status 2
….
# lvreduce -m 0 /dev/vg00/lvol1
Logical volume “/dev/vg00/lvol1” has been successfully reduced.
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf
# lvdisplay -v /dev/vg00/lvol1
--- Logical volumes —
LV Name /dev/vg00/lvol1
VG Name /dev/vg00
LV Permission read/write
LV Status available/syncd
Mirror copies 0
Consistency Recovery MWC
Schedule parallel
LV Size (Mbytes) 144
Current LE 36
Allocated PE 36
Stripes 0
Stripe Size (Kbytes) 0
Bad block off
Allocation strict/contiguous
IO Timeout (Seconds) default
--- Distribution of logical volume —
PV Name LE on PV PE on PV
/dev/dsk/c2t6d0 36 36
--- Logical extents —
LE PV1 PE1 Status 1
To Synchronize mirrored volumes use :
vgsync vg01 # Synchronize all LV’s in the vg
lvsync /dev/vg00/lvol1 # Sync this lv only
Splitting mirrors :
# lvsplit /dev/vg00/lvol1
Logical volume “/dev/vg00/lvol1b” has been successfully created with
character device “/dev/vg00/rlvol1b”.
Logical volume “/dev/vg00/lvol1” has been successfully split.
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf
#
#
# fsck -F hfs /dev/vg00/rlvol1b
\\ /dev/vg00/rlvol1b
\\ Last Mounted on /stand
\\ Phase 1 - Check Blocks and Sizes
\\ Phase 2 - Check Pathnames
\\ Phase 3 - Check Connectivity
\\ Phase 4 - Check Reference Counts
\\ Phase 5 - Check Cyl groups
49 files, 0 icont, 28553 used, 115020 free (124 frags, 14362 blocks)
\\\\\* MARKING FILE SYSTEM CLEAN *****
\\\\\* FILE SYSTEM WAS MODIFIED *****
#
#
# mount -o ro /dev/vg00/lvol1b /mnt
// When you’re done you can merge the mirror again
# umount /mnt
# lvmerge /dev/vg00/lvol1b /dev/vg00/lvol1
Logical volume “/dev/vg00/lvol1b” has been successfully merged
with logical volume “/dev/vg00/lvol1”.
Logical volume “/dev/vg00/lvol1b” has been successfully removed.
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf
// Be careful to lvmerge in the correct direction, LVM will merge either way !
LVM: Mirror the Bootdisk
/dev/rdsk/c2t6d0 is our original boot device.
# pvcreate -fB /dev/rdsk/c2t5d0
Physical volume “/dev/rdsk/c2t5d0” has been successfully created.
# vgextend vg00 /dev/dsk/c2t5d0
Volume group “vg00” has been successfully extended.
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf
# mkboot /dev/dsk/c2t5d0
# mkboot -a “hpux -lq” /dev/dsk/c2t5d0 # Update AUTO on both disks’s LIF Area
# mkboot -a “hpux -lq” /dev/dsk/c2t6d0
# vgdisplay -v | grep lvol
LV Name /dev/vg00/lvol1
LV Name /dev/vg00/lvol2
LV Name /dev/vg00/lvol3
LV Name /dev/vg00/lvol4
LV Name /dev/vg00/lvol5
LV Name /dev/vg00/lvol6
LV Name /dev/vg00/lvol7
LV Name /dev/vg00/lvol8
Now we have to mirror the volumes in the CORRECT order, else the mirror will not be bootable :
# vgdisplay -v | grep lvol | awk ‘{ print $3 }’ | xargs -n1 -Ixx lvextend -m 1 xx /dev/dsk/c2t5d0
or manually :
lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c2t5d0
lvextend -m 1 /dev/vg00/lvol2 /dev/dsk/c2t5d0
lvextend -m 1 /dev/vg00/lvol3 /dev/dsk/c2t5d0
lvextend -m 1 /dev/vg00/lvol4 /dev/dsk/c2t5d0
lvextend -m 1 /dev/vg00/lvol5 /dev/dsk/c2t5d0
lvextend -m 1 /dev/vg00/lvol6 /dev/dsk/c2t5d0
lvextend -m 1 /dev/vg00/lvol7 /dev/dsk/c2t5d0
lvextend -m 1 /dev/vg00/lvol8 /dev/dsk/c2t5d0
The newly allocated mirrors are now being synchronized. This operation will
take some time. Please wait ….
Now one last thing, make the new mirror the alternate boot device :
# ioscan -funC disk
Class I H/W Path Driver S/W State H/W Type Description
=======================================================================
disk 0 10/0/14/0.0.0 sdisk CLAIMED DEVICE MITSUMI CD-ROM FX4820T!B
/dev/dsk/c0t0d0 /dev/rdsk/c0t0d0
disk 1 10/0/15/0.5.0 sdisk CLAIMED DEVICE QUANTUM Atlas4-9LVD
/dev/dsk/c2t5d0 /dev/rdsk/c2t5d0
disk 2 10/0/15/0.6.0 sdisk CLAIMED DEVICE QUANTUM Atlas4-9LVD
/dev/dsk/c2t6d0 /dev/rdsk/c2t6d0
# setboot -a 10/0/15/0.5.0
LVM: Disaster Recovery
Restore a single disk
umount /fs
vgchange -a n vg01
vgcfgrestore -n vg01 /dev/rdsk/c0t3d0
vgchange -a y vg01
.. now you have your volumes back and can newfs, restore and mount
Restore a mirror-disk
vgcfgrestore -F -n /dev/vg1 /dev/rdsk/c0t0d3 # Careful with -F, new disks work without it
vgchange -a y vg01
vgsync vg01
Filesystems
te mostly used Filesystems are HFS, VxFS.
HFS for /stand (which contains the kernel) - this is what usually is called UFS.
VxFS for the remaining Filesystems
VxFS requires an option in order to support ’large’ files > 2GB.
newfs -o largefiles /dev/vg01/rgugus
mount -o largefiles /dev/vg01/gugus /mnt
you can also change this later :
# fsadm -F vxfs /mnt
largefiles
# fsadm -F vxfs -o nolargefiles /mnt
# fsadm -F vxfs /mnt
nolargefiles
But beware - also change /etc/fstab or you’ll get in trouble upon boot:
# umount /mnt
# mount -o largefiles /dev/vg01/gugus /mnt
vxfs mount: mount option(s) incompatible with file system /dev/vg01/gugus
Loopbackmount
mount -F lofs /usr /mnt/xx
will mount the /usr filesystem under /mnt/xx again, without the use of a symlink.
One wonders what this is good for - perhaps access permissions, since this way
another directory structure is traversed.
Filesystems: Extending/Shrinking
Simply do :
lvextend -l 8000 /dev/vg01/gugus # Extend the logical volume
fsadm -b 8150000 /mnt # Extend the Filesystem
reducing is done by :
fsadm -b 8000 /mnt # Shrink the Filesystem
lvreduce -l 1000 /dev/vg01/gugus # Reduce(shrink) the volume
lvreduce will issue a warning, if either the target size is smaller than the filesystem and abort the operation. No data is lost.
It AWLAYS will issue a warning that data may be lost if you reduce a volume, you can safely ignore that message if you only use the volume for a filesystem.
Example:
# lvreduce -l 100 /dev/vg01/gugus
When a logical volume is reduced useful data might get lost;
do you really want the command to proceed (y/n) : y
Logical volume “/dev/vg01/gugus” has been successfully reduced.
Volume Group configuration for /dev/vg01 has been saved in /etc/lvmconf/vg01.conf
You can (actually MUST , if you do not have the HP OnLineJFS License) also extend the Filesystem ‘offline’ :
umount /mnt
extendfs -F xvfs /dev/vg01/rgugus
mount /dev/vg01/gugus /mnt
To shrink the volume, you have backup, create a new filesystem and restore.
To remove a disk from a volume , use pvmove - which moves the extents
from the device to the remaining devices in the volume.
Filesystems: Backup/Restore
fbackup/frestore - like vdump/vrestore in Tru64, also backups ACLs.
dump, tar are also there, but you will loose ACLs when restoring data.
Create a Bootable Tape interactively (-i) , which boots interactively (-I) :
make_tape_recovery -iI (-A)
*NOTE* Itanium cannot boot from Tape. You’ll have to boot from the Installation CD and select recovery there, which then will use the data on your tape.
make_net_recovery -s … # Create recovery on the Network
make_sys_image # Create ‘CD’
Filesystems: Maintenance
Defragment using :
# fsadm -deDE /var
Backup/Restore using :
fbackup, frecover
Checking for errors
fsck -F hfs -o full /dev/vg00/lvol9 # or vxfs, -o full forces check
Swap
lvlnboot -v # displays lvm config (also swap device)
swapinfo -tm # Display swap in use
swapon /dev/vvg01/swapvol # Use LVM Volume
swapon -e /dev/dsk/c2t5d0 # Use rawdevice (at end of Volume)
swapon /dev/dsk/c2t5d0 # Use rawdevice
swapon -p 4 -l 4M /mnt # Use /mnt filesystem
System Partitions
See: parinfo, parmodify
Booting a PA-RISC Box
POST Power On SelfTest
BCH Boot Console Handler
ISL Initial System Load (also IPL)
hpux loads vmunix
vmunix the kernel
Poweron begins the Boot - you’ll have to press a key to enter the BCH.
There you can :
> help
> search ipl # Show all bootable devices
> path # Display current bootpath
> boot
> reset
ISL/IPL Commands :
ISL> hpux show autofile
ISL> hpux ls # view /stand
ISL> hpux -is # Boot single-user
ISL> hpux -lq # without LVM Quorum
ISL> hpux -lm # Without LVM (Maintenance Mode)
ISL> hpux /stand/vmunix.xx
ISL> exit
Set bootpath from Unix :
setboot -a x/x.x.x # Alternate
setboot -p x/x.x.x # Primary
Copy/View the LIF area :
# lifcp /dev/rdsk/c2t6d0:AUTO -
hpux
#
# lifls /dev/rdsk/c2t6d0
ODE MAPFILE SYSLIB CONFIGDATA SLMOD
SLDEV SLDRIVERS SLSCSI MAPPER IOTEST
PERFVER PVCU SSINFO HPUX ISL
AUTO LABEL
#
Booting Integrity/Itanium
Basically the same as for PA-RISC, but ISL is replaced with EFI, withe these commands :
map -b -r -fs # View bootable devices
lanboot select # View Network Interfaces, and let you select from which one to boot.
HPUX> showauto
HPUX> setauto “boot vmunix”
HPUX> boot vmunix -v # same flags as for PA-RISC (-is , -lq , -lm)
Startup
Startup is very much like Tru64 , in that it uses /sbin/rc3.d/* /etc/rc.config but there are some small differences :
- /etc/rc.config is actually a script which runs ALL configuration files from /etc/rc.config.d/
so when a rc script runs, it sees all variables - much like in Tru64 where all variables are
in a single file.
- /sbin/init.d/template - contains a template for start/stop scripts. Use that, it also contains
plenty comments to help you set things up correctly.
Networking: Basics
Specific commands are lanscan, lanadmin, linkloop, ndd
ioscan -funC lan # Check for interface
/etc/rc.config.d/netconf # IP configuration
/etc/rc.config.d/nddconf # Tunable Parameters
netconf:
INTERFACE_NAME[0]=“lan0”
IP_ADDRESS[0]=“155.208.129.13”
SUBNET_MASK[0]=“255.255.255.128”
ROUTE_DESTINATION[0]=default
ROUTE_GATEWAY[0]=155.208.129.1
ROUTE_COUNT[0]=1
ROUTE_DESTINATION[1]=“net 10.0.0.0”
ROUTE_GATEWAY[1]=155.208.129.1
ROUTE_COUNT[1]=2
To configure aliases, use the following style :
INTERFACE_NAME[0]=“lan0:0”
INTERFACE_NAME[0]=“lan0:1”
# ifconfig lan0:1 1.2.3.4 # Create an alias
# ifconfig lan0:1 0.0.0.0 # Delete the alias
for the route add it is important to specify a ‘count’ else you will get ‘Network is unreachable’ :
ifconfig lan0 128.1.2.1
ping 128.1.0.1 -> OK # This would also be the router for 10.x.x.x
route add net 10.0.0.0 128.1.0.1 1
ping 10.2.3.4 -> OK
Networking: Tuning
Use ndd
ndd -h to get a list of parameters
ndd -get /dev/ip
ndd -set /dev/ip
Watch out, ip_forwarding is ENABED by default.
Kernel: Build, Configure (PA-RISC)
You can simply use SAM , there are also explanations to the parameters.
If your new kernel does not boot, boot from the old kernel (kernel.prev)
# cd /stand
# mv system.prev system
# kmupdate /stand/vmunix.prev
# shutdown -ry 0
now you can use SAM to configure a new Kernel another time.
Manually :
# cd /stand/build
# /usr/sbin/config -c conf.SAM.c -l config.SAM.mk system.SAM
# kmupdate
Kernel: Build (Itanium)
kcweb ( -F or -c) -F = insecure
-c = create new Server Certificates
Will give you a WEB Gui , where you can configure and build a Kernel
kconfig
kcpath
kcmodule
kctune
kcusage
kcalarm
kclog
–
/stand/
Debugging
www.hp.com/go/wdb - has WDB for Itanium and PA/RISC (HP’s GDB)
software.hp.com - for generic software
Products: Installing,Deleting,Info
swinstall, swlist, swremove
swinstall -s /depot/wdb-5.0-pa.depot # Brings up a GUI to install from that depot
swinstall -s /depot/wdb-5.0-pa.depot WDB # Install WDB from that depot
swremove WDB # Delete a Product
swlist WDB # List that Product
when doing wsinstall, you can also request that all available patches are also installed at the same time (if on the same Depot Server) :
swinstall -s /depot -x autoselect_patches=true MyNewProd
--- interesting swlist commands —
# swlist -bundle -l file | grep bash # Search for the file ‘bash’
( a product may be not in a bundle, simply use the same command without -bundle )
# swinstall -s zrh003:/var/opt/starburst/depots/Rel_B.11.11/appl mysql
Installs ‘mysql’ from a installations server.
# swcopy -s zrh003:/aaa/bbb/ccc /labs/depots/sw Perl5
# swlist -s zrh003:/aaa/bbb/appl -l product | grep -i perl
# swremove perl
# swremove -x enforce_dependencies=false perl
# swinstall Perl5 // Will install from the default (local) Path /var/spool/sw/
IMPORTANT:
This feature requires the swagentd to run !
Patches
Patches are also installed using swinstall, there are these types of Patches :
PHxx_yyyyy where :
xx = Type
yyyyy= sequence number
xx=
CO = General Unix Commands
KL = Kernel Patches (reboot required)
NE = Network Patches
SS = all other
Patches are usually cumulative - e.g. a newer patch contains all the older fixes too.
Patches ‘know’ which Version and OS are installed - use patch_match_target for swinstall !
Install Single Patch
# cd /tmp // This is the default path in the .text file, too
# gzip -d patches.tgz
# tar xvf patches.tar
# sh PHCO_1000
# more PHCO_1000.text
# swinstall -s ./PHCO_1000.depot -x autoreboot=true -x patch_match_target=true
Install Patch Bundle
# cd /tmp // This is the default path in the .text file, too
# gzip -d patches.tgz
# tar xvf patches.tar
# ./create_depot_hp-ux_11
# swlist -a readme -s /tmp/depot
# swinstall -s /tmp/depot -x autoreboot=true -x patch_match_target=true
View installed Patches for LVM
# swlist -l patch LVM
Remove Patch , reverts to previous files
# swremove -x autoboot=true PHCO_1000
Commit Patches - Delete the previous Files from /var/adm/sw/
# swmodify -x patch_commit=true ‘PHCO_1000.*’
SD-UX: Creating/Deleting a depot
Create multiple depots, if you plan to host multiple OS Versions
mkdir /depot # For production, use a separate (big) filesystem !
swcopy -s /cdrom AProduct @ /depot // Copy a single Product
swcopy -s /cdrom ‘*’ @ /depot // Copy ALL Products
swcopy -s zrh003:/Rel_B.11.00/labs H6704S_B01 @ /depot // Copy from other Server
To copy patches to a Depot Server, you must :
swcopy -s /tmp/PHCO_xxxx.depot -x enforce_dependencies=false \* @ /depot
Remove Software from a Depot
swremove -d MySoftware @ /depot // remove MySoftware
Remove the whole depot
swremove -d ‘*’ @ /depot // remove ALL Software and the Depot itself
rm -rf /depot // clean up
SD-UX: Using the PUSH Feature
On Server :
touch /var/adm/sw/.sdkey
On Client(s) :
/usr/lbin/sw/setaccess // Allow Access for
swacl -l root // Show ACL
Now you can use to install/remove Software from Clients :
swinstall -s /depot MyProd @ client1 client2
swlist @ client1 client2
swremove MyProd @ client1 client2
You cannot swinstall a *.depot file directly, but must use a depot server.
HP-UX Install
update-ux is the command used to install or update the OS.
# swlist -l product HPUX11i-OE* // See what yoy currently have
# swlist -l bundle -s /cdrom HPUX11i-OE* // See what OE’s are available
Update to the MissionCritical OE
# update-ux -s /cdrom HPUX11i-OE-MC // Update to the MissionCritical OE
Downgrade from MissionCritical to lower
# update-ux -s /cdrom -y HPUX11i-OE // Install the lower OE
# swremove HPUX11i-OE-MC // Remove the MC Bundle
HP/UX Tools and Downloads
www.hp.com/workstations/segments/ mcad/dassault/plmcc/perf_tools.html
there yuo can find ’tusc’ (truss for HP/UX) , ‘prospect’ and many other tools
HP-UX Security/ IP-Filter
Install Bastille from you OS CD to harden the OS
then run
# /opt/sec_mgmt/bastille/bin/bastille
to configure the options you need.
You can also download and install IPFilter from software.hp.com
# swinstall -x autoreboot=true -s /B9901AA_A.03.05.10.04_HP-UX_B.11.11_32+64.depot B9901AA
Install Process Resource Manager
swinstall -x autoreboot=true -s zrh003:/var/opt/starburst/depots/Rel_B.11.11/appl PRM-Sw-Krn PRM-Sw-Lib Proc-Resrc-Mgr
prm will allow you to assign resources to processes, sounds like an interesting
HP-UX Links
- http://europe-support.external.hp.com External Support
- http://www.docs.hp.com Technical Documentation
- http://www.software.hp.com Software
- http://software.external.hp.com External Software
- http://www.openview.hp.com/ OpenView
- http://europe-support.external.hp.com OpenView Support
- http://ovforum.org OpenView Forum